是否可以使用多核cpu和gpu(在一台计算机上)同时进行计算并动态调度工作负载? cpu和gpu代码之间的接口是什么?
任何初学者参考?感谢
答案 0 :(得分:1)
默认情况下,CPU和GPU同时处理,除非您(显式或隐式)应用同步指令。在CUDA中,我假设你感兴趣的平台是,CPU和GPU之间的对话主要局限于同步指令,内核启动指令,最重要的是全局内存。在离散GPU中,它们通过全局存储器进行通信。
关于动态调度,文献中有很多工作要做。 GPU在接收他们想要批量处理的数据,处理它并将结果传回主机(CPU端)时是最好的。在动态调度方面,除非您确定要发送给GPU进行处理的负载是值得的,否则大部分时间都是昂贵的。
你可能想谷歌并调查AMD APU,它们在同一个芯片上有CPU和GPU。我听说他们在动态工作调度方面更灵活,因为地址空间在物理上是相同的,并且CPU< - > GPU通信并不那么昂贵。
关于初学者的参考资料,我从 Jason Sanders 和 Edward Kandrot 编写的 CUDA by Example 开始。我觉得开始很好。但请注意,本书不会(也不能)涵盖一些重要主题。自编写本书以来,NVIDIA已经推出了具有新颖功能的新一代CUDA设备。关注在线资源。
祝你好运!