向量化 - 传统累加运算 - 代码实现:
1 | import time |
结果对比:
1 | Vectorized :1.0001659393310547ms res =24969.775960643143 |
从执行结果来看向量化的运算速度要比非向量化的运算快了近80倍,而这个对比结果还会随着运算集的数目增加而增加。
为什么:
CPU 与 GPU 都能够使用 SIMD 指令进行并行化操作,即以同步方式,在同一时间内执行同一条指令。一般来讲可扩展的深度学习都在 GPU 上做,但其实 CPU 也不是太差,只是没有 GPU 擅长。
而 Python 的 numpy 的一些内置函数能够充分利用并行化来加速运算,比如 np.dot,因此,不到逼不得已,还是不要使用 for 循环吧
注:
GPU - 图形处理器也,叫做图像处理单元,显卡的处理器。与 CPU 类似,只不过 GPU 是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。
SIMD - 单指令多数据流,以同步方式,在同一时间内执行同一条指令。