根据下表(来自this paper),在使用np.dot
矩阵进行的实验中,numpy的320x320
性能可与CUDA实现的矩阵乘法相媲美。我确实以足够的精度在np.dot
的计算机上复制了此Speedup。不过,他们使用Numba的CUDA代码运行起来要慢得多,其加速比约为1200,而不是报道的49258。
为什么numpy的实现如此之快?
编辑:here是摘自本文的代码。我刚刚添加了timeit
个调用。我在以下笔记本电脑上运行它。
答案 0 :(得分:1)
除了what @norok2 links to之外,将数据传输到GPU的开销很大。在某些情况下,这变得很重要:
这两个要点都适用。 320x320的大小不是特别大,乘法是您唯一要做的事情。到目前为止,CPU还没有被GPU淘汰,而让这种事情可以证明这一点。
答案 1 :(得分:0)
NumPy之所以如此之快,是因为它使用了高度优化的BLAS库,该库可能正在使用CPU的SIMD指令。