如何通过故事轻松理解CPU的SIMD并行处理技术?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2365个文字,预计阅读时间需要10分钟。
久不见,我叫阿Q,是CPU一号车间的员工。我所在的CPU有8个车间,也就是8个核心,每个核心都可以同时执行两个线程,即8核16线程,速度杠杠的。我的一号车间,除了负债之外,其他都挺不错的。
好久不见,我叫阿Q,是CPU一号车间的员工。我所在的CPU有8个车间,也就是8个核心,咱们每个核心都可以同时执行两个线程,就是8核16线程,那速度杠杠滴。
我所在的一号车间,除了负责执行指令的我,还有负责读取指令的小A,负责指令译码的小胖和负责结果回写的老K,我们几个各司其职,一起完成执行程序的工作。
一个简单的循环那天,我们遇到了一段代码:
void array_add(int data[], int len) { for (int i = 0; i < len; i++) { data[i] += 1; } }
循环了好几百次之后,才把这段代码执行完成,每次循环都是做简单又重复的工作,把我累得够呛。
一旁负责结果回写的老K也是累的满头大汗,吐槽道:“每次都是取出来加1又写回去,要是能一次多取几个数,批量处理就好了”
老K的话让我眼前一亮,对啊,能不能批量操作呢?
心里一边想着,一边继续干活了。
繁忙的一天很快结束了,转眼又到了晚上,计算机关机后,我把大家召集了起来。
“兄弟们,还记得咱们白天遇到的那个循环吗?”
“你说哪个循环,咱们这一天可执行了不少循环呢”,小A说到。
本文共计2365个文字,预计阅读时间需要10分钟。
久不见,我叫阿Q,是CPU一号车间的员工。我所在的CPU有8个车间,也就是8个核心,每个核心都可以同时执行两个线程,即8核16线程,速度杠杠的。我的一号车间,除了负债之外,其他都挺不错的。
好久不见,我叫阿Q,是CPU一号车间的员工。我所在的CPU有8个车间,也就是8个核心,咱们每个核心都可以同时执行两个线程,就是8核16线程,那速度杠杠滴。
我所在的一号车间,除了负责执行指令的我,还有负责读取指令的小A,负责指令译码的小胖和负责结果回写的老K,我们几个各司其职,一起完成执行程序的工作。
一个简单的循环那天,我们遇到了一段代码:
void array_add(int data[], int len) { for (int i = 0; i < len; i++) { data[i] += 1; } }
循环了好几百次之后,才把这段代码执行完成,每次循环都是做简单又重复的工作,把我累得够呛。
一旁负责结果回写的老K也是累的满头大汗,吐槽道:“每次都是取出来加1又写回去,要是能一次多取几个数,批量处理就好了”
老K的话让我眼前一亮,对啊,能不能批量操作呢?
心里一边想着,一边继续干活了。
繁忙的一天很快结束了,转眼又到了晚上,计算机关机后,我把大家召集了起来。
“兄弟们,还记得咱们白天遇到的那个循环吗?”
“你说哪个循环,咱们这一天可执行了不少循环呢”,小A说到。

