2014-01-28 42 views
0

已经分配一些任务,通常在CPU运行,GPU!有没有办法做到这一点?例如。如果我想将scp进程分配给GPU,我必须重写进程代码和内核代码? 谢谢你,对不起我的英语!如何分配一些任务到GPU

回答

2

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

有一些工具包可以让程序员编写代码图形处理器,如NVIDIA的CUDA,这将让你一些计算移到GPU。但请记住,这不适用于任何程序;该程序必须允许并行性。一个很好的例子是hashcat,它是一个密码破解程序,它使用GPU来实现比仅限CPU的破解程序更好的性能。

+0

确定。如果我想分配scp到GPU,我必须重写流程代码?谢谢 – Antonio

+0

是的。您需要将程序的源代码重写为使用OpenCL或CUDA等框架。这不是一项简单的任务......有些程序不会因移动到GPU而受益。 – superdesk

+0

对于特别是scp,首先查看源代码,看看它的任何部分是否可以并行完成。只是一个猜测...但似乎并不像scp会是一个好人选。 – superdesk