![](/cs149/fall21content/media/hetero2/images/slide_021.jpg)
Back to Lecture Thumbnails
![](/cs149/fall21content/media/users/leo/profile_J3g3bMr.jpg)
leo
![](/cs149/fall21content/media/users/minglotus/profile_unMHjmz.jpg)
minglotus
SIMD reduces overhead by "batching" the data loading and instruction execution.
Since it performs the same instruction over vectorized data, the program must have enough data level parallelism (the same logic applied over different data); otherwise inefficiencies come from unused computation results.
![](/cs149/fall21content/media/users/kristinayige/profile.jpg)
kristinayige
SIMD reduces the overhead of all the steps for executing these steps only once but performs subsequent N instructions. Other than the divergence issue, bandwidth would also reduce the efficiency of SIMD.
![](/cs149/fall21content/media/users/chenyecharchar/profile.jpg)
chenyecharchar
specialized hardware helps to reduce overhead for each instruction
Please log in to leave a comment.
Copyright 2021 Stanford University
I think SIMD execution reduces overhead for every step outlined, with maybe the exception of checking for dependencies/pipeline hazards (It might actually increase overhead for this component due to potential branch divergence).