如何将一些任务分配给GPU

时间:2014-01-28 11:29:15

标签: kernel task gpu scheduling multicore

我将一些通常在CPU上运行的任务分配给GPU!有没有办法做到这一点?对于前者如果我想将scp进程分配给GPU,我是否要重写进程代码和内核代码? 谢谢你,对不起我的英文!

1 个答案:

答案 0 :(得分:2)

你不能只告诉程序在GPU而不是CPU上运行。 GPU的工作方式非常不同:它设计用于在多个数据片段(SIMD)上执行单个指令,而我们通常将CPU视为为单个数据片段执行单个指令(SISD) 。例如,GPU可用于在3D场景中的每个单个顶点上执行相同的矩阵运算,而CPU可用于计算X * 11.

有一些工具包允许程序员为GPU编写代码,例如NVIDIA的CUDA,这将允许您将一些计算移动到GPU。但请记住,这对任何程序都不起作用;该程序必须允许并行。一个很好的例子是hashcat,这是一个密码破解程序,它使用GPU来实现比仅CPU破解程序更好的性能。