我一直在探索减少CPU和GPU之间数据传输引起的延迟的方法。当我第一次使用CUDA时,我确实注意到CPU和GPU之间的数据传输需要几秒钟,但我并不在意,因为对于我编写的小程序来说这并不是一个问题。事实上,对于利用GPU的绝大多数程序(包括视频游戏),延迟可能并不是一个大问题,因为它们仍然比在CPU上运行要快得多。
然而,我是一位高性能计算爱好者,当我看到天河一号理论峰值浮点运算速度与实际LINPACK测量性能之间的巨大差距时,我开始担心我的研究方向是否正确。
使用固定内存(page-locked)内存是通过使用cudaHostAlloc()函数进行优化代码以减少延迟的一种方法(非常有效),但我是否还有其他不知道的技术呢?请注意,我谈论的是优化代码,而不是硬件本身(那是NVIDIA和AMD的工作)。
顺便问一下,我知道戴尔和惠普销售Tesla服务器。我很好奇GPU在数据库应用程序中的表现如何,其中您需要从硬盘(HDD或SSD)进行持续读取,这是只有CPU可以执行的操作。