微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

垫子乘以多大才能更有效地使用 gpu

如何解决垫子乘以多大才能更有效地使用 gpu

所以我一直在搞 OpenCL 内核,我试图更好地理解 GPU 加速,我很想知道人们如何找到使用 GPU 计算效率更高的点加速代替传统cpu计算

解决方法

对于 GPU 并行化何时更好,没有一刀切的明确阈值,因为它取决于硬件。从 CPU 到 GPU 并返回的数据传输会导致几毫秒的延迟,并且需要大量数据才能在全 PCIe 带宽下高效运行。然而,由于矩阵乘法的计算时间与 N^2 成比例,GPU 的性能优势将很快克服额外的延迟。根据经验:

3x3 矩阵 -> 使用 CPU

10x10 -> 可能 CPU 更快

100x100 -> 可能 GPU 更快

1000x1000 -> 绝对是 GPU

1000000x1000000 -> 使用 GPU,使用 CPU 可能需要几天时间

有些情况下,在 GPU 上执行 3x3 矩阵是有意义的:如果您有数百万个并行的 3x3 矩阵乘法要计算。在这种情况下,您不会对矩阵元素进行并行化,而是对每个 GPU 线程按顺序执行一次 3x3 乘法。

最后要说的是,在 GPU 上,您应该对大型矩阵乘法使用缓存平铺优化。通过在本地内存(L2 缓存)中加载矩阵块,这使它的速度提高了 10 倍,因此它不必从全局内存 (VRAM) 中多次访问矩阵元素。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。