# solvers.TransformationModel { #mlsysim.solvers.TransformationModel } ```python solvers.TransformationModel() ``` Quantifies the CPU preprocessing bottleneck (Wall 9: Transformation). This model simulates the 'Transformation Wall' — the gap between CPU-bound data preprocessing (JPEG decode, tokenization, augmentation) and accelerator step time. When preprocessing cannot keep up, the accelerator starves and utilization drops. Literature Source: 1. Mohan et al. (2022), "Analyzing and Mitigating Data Bottlenecks in Deep Learning Training." 2. Murray et al. (2021), "tf.data: A Machine Learning Data Processing Framework." (Pipeline stall analysis.) 3. NVIDIA DALI Documentation (2024). (GPU-accelerated preprocessing.) ## Methods | Name | Description | | --- | --- | | [solve](#mlsysim.solvers.TransformationModel.solve) | Solves for CPU preprocessing bottleneck. | ### solve { #mlsysim.solvers.TransformationModel.solve } ```python solvers.TransformationModel.solve( batch_size, sample_size_bytes, cpu_throughput, accelerator_step_time, ) ``` Solves for CPU preprocessing bottleneck. #### Parameters {.doc-section .doc-section-parameters} | Name | Type | Description | Default | |-----------------------|----------|-------------------------------------------------------------|------------| | batch_size | int | Number of samples per batch. | _required_ | | sample_size_bytes | Quantity | Size of one sample in bytes (e.g., Q_("500 KB")). | _required_ | | cpu_throughput | Quantity | CPU preprocessing throughput (e.g., Q_("2 GB/s")). | _required_ | | accelerator_step_time | Quantity | Time for one accelerator training step (e.g., Q_("50 ms")). | _required_ | #### Returns {.doc-section .doc-section-returns} | Name | Type | Description | |--------|------------------|-----------------------------------------------------------------| | | Dict\[str, Any\] | Transform time, bottleneck status, and accelerator utilization. |