compilation - JIT 编译器是否有可能在幕后利用 GPU 进行某些操作?

标签 compilation theory jit gpu

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

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

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

我的理解是幼稚的吗?难道只是因为它真的很复杂,只是还没有完成?

最佳答案

My understanding is that GPUs offer a subset of the instructions that a normal CPU provides but executes them much faster.



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

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

关于compilation - JIT 编译器是否有可能在幕后利用 GPU 进行某些操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150280/

相关文章:

c++ - 主函数外的数组指针

parsing - 为我的语言编写解析器的最短方法是什么?

theory - NP-完全归约(理论上)

javascript - React Native 在 Android 上使用 JIT(Just in Time)编译还是解释 JavaScript 代码?

c++ - C++代码在编译过程中是否转换为C?

c++ - 静态常量匿名 union 使用 GCC 4.9.3 给出 "uninitialized const"错误

c++ - glibc 函数的 GCC、-flto、-fno-builtin 和自定义函数实现

syntax - 语言是否应该提供方法链的语法替代方案?

android - JIT 编译器如何帮助提高应用程序的性能?

.net - 子 AppDomain 中的 LINQ