JIT编译器是否可以在幕后使用GPU进行某些操作?

时间:2010-06-30 14:35:47

标签: compilation theory jit gpu

如果我理解的任何部分是错误的,请随时纠正我。

我的理解是GPU提供普通CPU提供的指令子集,但执行速度要快得多。

我知道有很多方法可以将GPU周期用于非图形用途,但似乎(理论上)一种Just In Time编译的语言可以检测到合适GPU的存在并将一些工作卸载到GPU幕后没有代码更改。

我的理解天真吗?它只是一个问题,它真的很复杂,而且还没有完成它?

2 个答案:

答案 0 :(得分:8)

  

我的理解是GPU提供了一个   a。指令的子集   普通CPU提供但执行它们   更快。

绝对不是那么简单。 GPU主要针对SIMD /矢量处理进行定制。因此,即使现在GPU的理论潜力优于CPU,但只有可以从SIMD指令中受益的程序才能在GPU上高效执行。此外,当数据必须从CPU传输到GPU以在那里处理时,当然存在性能损失。

因此,为了使JIT编译器能够有效地使用GPU,它必须能够检测可以并行化以从SIMD指令中受益的代码,然后必须确定是否将数据从CPU传输到通过性能改进,GPU将会超重。

答案 1 :(得分:0)

可以使用GPU(例如,支持CUDA或OpenCL的)来加速JIT本身。寄存器分配和指令调度都可以有效实现。