A team is choosing between a CPU-based and a GPU-based pipeline for two tasks: (1) computing element-wise transformations across 200 million floating-point values, and (2) executing a decision-tree traversal where each row follows a unique branch path determined by its feature values. Which assignment best matches each task to the correct processing unit?
- AGPU for the element-wise transformations and CPU for the decision-tree traversal, because uniform parallel operations over large arrays suit GPU throughput while conditional, branchy logic suits the CPU's out-of-order execution model. Correct
- BGPU for both tasks, because modern GPUs have enough cores to handle branchy tree traversal in parallel across all rows simultaneously.
- CCPU for both tasks, because CPUs have higher single-core clock speeds and larger caches that benefit all data science workloads regardless of data size.
- DCPU for the element-wise transformations and GPU for the decision-tree traversal, because CPUs handle large vectorised operations more efficiently than GPUs do.
Why A is correct: Element-wise operations over 200 million values are embarrassingly parallel with no branching, exactly matching GPU strengths. Decision-tree traversal involves per-row conditional branching that causes CUDA warp divergence, degrading GPU efficiency; the CPU's branch predictor and out-of-order execution handle this pattern far better.
Why B is wrong: GPU cores execute in SIMD warps where divergent branches cause serialisation within a warp; branchy decision-tree traversal with per-row unique paths leads to warp divergence and poor GPU utilisation, making a CPU the better fit for that task.
Why C is wrong: Higher single-core clock speed and larger caches do not compensate for the lack of parallelism when processing 200 million values; the element-wise transformation is exactly the class of embarrassingly parallel, compute-heavy work where GPUs excel.
Why D is wrong: This assignment is reversed. Large-scale element-wise floating-point work is embarrassingly parallel and is precisely where GPU throughput dominates; CPU vector units cannot match thousands of GPU cores for that task at 200 million elements.