是否可以将功能卸载到显卡?
Is it possible to offload function to graphic card?
我有一个 C++ 多线程应用程序,我想通过使用 Intel HD Graphics 获得更好的性能并减少总 CPU 使用率。
我没有使用 CILK。 (应用纯C++编写)
我阅读了以下内容link:
How to offload computation to Intel(R) Graphics Technology
但是没找到处理写在显卡上的函数或线程的方法
可能吗?
有没有办法使用英特尔编译器将函数(或线程)卸载到英特尔核芯显卡中?
谢谢
是的,这是可能的。但这并不简单。
您可以根据需要使用 CUDA、OpenCL 或 DirectCompute,但是您需要编写函数的并行版本。 运行 GPU 上的 "sequential" 函数绝对没有意思。并行化算法可能是最困难的任务,底层 API 大致相似。
这点我很感同身受:
- 您拥有的代码是为(单线程)CPU 编写的,顺序也是如此
- 您希望 GPU 执行的代码 运行 需要 并行
我不知道有什么工具能够并行化算法。
我有一个 C++ 多线程应用程序,我想通过使用 Intel HD Graphics 获得更好的性能并减少总 CPU 使用率。
我没有使用 CILK。 (应用纯C++编写)
我阅读了以下内容link: How to offload computation to Intel(R) Graphics Technology
但是没找到处理写在显卡上的函数或线程的方法
可能吗? 有没有办法使用英特尔编译器将函数(或线程)卸载到英特尔核芯显卡中?
谢谢
是的,这是可能的。但这并不简单。
您可以根据需要使用 CUDA、OpenCL 或 DirectCompute,但是您需要编写函数的并行版本。 运行 GPU 上的 "sequential" 函数绝对没有意思。并行化算法可能是最困难的任务,底层 API 大致相似。
这点我很感同身受:
- 您拥有的代码是为(单线程)CPU 编写的,顺序也是如此
- 您希望 GPU 执行的代码 运行 需要 并行
我不知道有什么工具能够并行化算法。