我有一个C++多线程应用程序,我想通过使用英特尔核芯显卡获得更好的性能并降低总 CPU 使用率。
我没有使用 CILK。(该应用程序是用纯C++编写的)
我阅读了以下链接:如何将计算卸载到英特尔® 图形技术
但是没有找到处理图形卡上的写入函数或线程的方法。
可能吗? 有没有办法使用英特尔编译器将函数(或线程)卸载到英特尔核芯显卡中?
谢谢
是的,这是可能的。但这并不简单。
你可以使用CUDA,OpenCL或DirectCompute来实现你想要的,但是你需要编写函数的并行版本。在GPU上运行"顺序"功能绝对没有意思。并行化算法可能是最困难的任务,底层 API 大致相似。
我对此感同身受:
- 您拥有的代码是为(单线程)CPU 制作的,因此是顺序的
- 您希望 GPU 运行的代码必须是并行的
我不知道有任何工具能够并行化算法。