我的问题并不是关于GPGPU的。我相当了解GPGPU,这不是我想要的东西。据说英特尔的Sandy Bridge有一些功能可以让你直接在GPU上执行计算,这是真的吗?
我计划编写的代码将使用C中的内联汇编。是否有汇编指令可以将执行内容推送到GPU而非CPU上执行?
以下是一些相关文档: PDF中包含有指令集。
我计划编写的代码将使用C中的内联汇编。是否有汇编指令可以将执行内容推送到GPU而非CPU上执行?
以下是一些相关文档: PDF中包含有指令集。
回答你的第一个问题:不,这是不正确的。
让我引用你提供的资源:
通过内存映射IO寄存器的直接接口和间接地解析CPU放置在内存中的指令,CPU控制着图形处理单元。(SB GPU手册第2.2章)
因此,在CPU上下文中没有GPU代码的直接执行。
对于你的第二个问题:“将东西推送到GPU”是通过mov指令完成的。目标是mem-mapped IO寄存器,源是你想要写入的内容。您可能需要插入一些“sfence”或类似的指令,以确保不会发生弱内存重排序。