是否可以在多线程而不是 cuda/opencl C++运行 GPU?



它存在一个隐藏Opencl初始和结束部分以简化软件的sw或类? 我认为 OpenGL 可以,但我不知道是否可以仅在 GPU 上使用它,因为如果您必须不断下载并将数组上传到 GPU,效率就会下降。

使用多线程而不是使用 opencl 运行 GPU 会很棒。当然,应该执行新的驱动程序和一些硬件更改,但可以达到以下优点:- 性能比 opencl 提高 12 倍(这取决于应用程序,请参阅 (1( (

- 比标准多线程将性能提高 120 倍(这取决于应用程序,请参阅 (1( (- 使用
库 -
更好的调试 -
存在很多软件 -
更容易编程
- 更好地使用其他语言(java, 菲顿(
- 更好地访问硬盘和外围设备

响应:

  • NVIDIA正在制造运行C++的GPU: https://www.youtube.com/watch?v=86seb-iZCnI&feature=youtu.be 在单个特斯拉 V100 Volta 架构卡中运行 5120 个 32 位内核
  • NVIDIA正在使C++在GPU上工作: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0761r2.pdf

  • 它为C++增加了并行性: https://www.youtube.com/watch?v=Vck6kzWjY88&feature=youtu.be

TL;大卫:可能吗?或。这是个好主意吗?不,因为(剧透(GPU 不是 CPU

CPU可以做任何事情,所有操作你的电脑甚至可以做图形操作。

GPU是一种特殊类型的微处理器,针对图形任务进行了优化,该任务需要大量简单的并行"哑"操作。GPU 只能执行 CPU 执行的许多操作中的一小部分(但它做得很好(。

C++是一种高效的语言,因为编译器旨在为您的 CPU 优化它(以汇编形式(。在 GPU 上,您没有相同的指令集可用。这意味着您必须用多个更简单的指令替换复杂的指令(假设这是可能的(,因此需要 1 条指令的操作将需要 2...4...10...现在说明 !并且不要忘记GPU时钟通常比CPU时钟慢。我没有看到优化在哪里。

另外,我真的很想知道你在哪里找到你在问题中提出的值(12x、120x 等(。

最新更新