所以我一直在摆弄OpenCL内核,我试图更好地理解GPU加速,我很好奇人们将如何找到使用GPU加速来代替传统的CPU计算在计算效率上更高的点
发布于 2021-06-25 05:11:44
当GPU并行化更好时,没有一个通用的尖锐阈值,因为它依赖于硬件。数据在CPU和GPU之间来回传输会造成毫秒级的延迟,并且需要大量数据才能在全PCIe带宽下高效运行。然而,由于矩阵乘法的计算时间与N^2成比例,GPU的性能优势将很快克服额外的延迟。作为一个经验法则:
3x3矩阵->,使用CPU
10x10 ->可能更快
100x100 ->可能更快
1000x1000 ->绝对是GPU
1000000x1000000 ->使用图形处理器,可能需要几天时间
在某些情况下,在GPU上做3x3矩阵是有意义的:如果你有数百万个并行的3x3矩阵乘法要计算。在这种情况下,您不会在矩阵元素上进行并行,而是在每个GPU线程上顺序执行一次3x3乘法。
最后,在GPU上,您应该对大型矩阵乘法使用缓存平铺优化。这使得它在本地内存(L2缓存)中加载矩阵块的速度提高了10倍,因此它不必从全局内存(VRAM)多次访问矩阵元素。
https://stackoverflow.com/questions/68119998
复制相似问题