是否可以对GPU进行编程和/或修改以执行CPU指令?

是否可以对GPU进行编程和/或修改以执行CPU指令?,gpu,cpu,Gpu,Cpu,我想知道,如果GPU经过修改或编程,它是否可以像CPU一样工作。如果有办法,我也想知道如何做到这一点。原因是,嗯,有时候我做那种实验,只是为了好玩。另外,如果这不是一个大麻烦的话,那么它将比仅仅为了获得更好的性能而购买昂贵的处理器要好得多。我通常不需要我的GPU,只是因为我用我的电脑做最简单的事情。我的另一台计算机,情况稍有不同(因为我用它来播放视频),但你明白了。是的,它被称为(通用GPU),你可以使用或之类的语言在GPU上编程一些类似CPU的工作负载 当然,这种方法不能很好地处理任何工作负载

我想知道,如果GPU经过修改或编程,它是否可以像CPU一样工作。如果有办法,我也想知道如何做到这一点。原因是,嗯,有时候我做那种实验,只是为了好玩。另外,如果这不是一个大麻烦的话,那么它将比仅仅为了获得更好的性能而购买昂贵的处理器要好得多。我通常不需要我的GPU,只是因为我用我的电脑做最简单的事情。我的另一台计算机,情况稍有不同(因为我用它来播放视频),但你明白了。

是的,它被称为(通用GPU),你可以使用或之类的语言在GPU上编程一些类似CPU的工作负载

当然,这种方法不能很好地处理任何工作负载,CPU在单线程难以并行化的代码中,或者在具有复杂控制流(由于分支预测器)或内存局部性(由于更好的缓存和预取)的代码中仍然表现得更好。GPGPU在执行非常直接的、高度并行的矢量化代码方面通常更好

事实上,这种计算方法吸引了足够的注意力来创建新的产品线(例如,Formly Larrabee),并增强现有GPU(例如,和其他)

编辑
再读一遍你的问题——如果你的意思是在这样的GPGPU上运行实际的CPU ISA,而不仅仅是一些一般的CPU任务,那么最好的选择是上面提到的Xeon Phi,它的目的是基于与CPU相同的ISA(这是我所知的唯一x86 GPGPU)

是的,它被称为(通用GPU),有了它,您可以使用或之类的语言在GPU上编程一些类似CPU的工作负载

当然,这种方法不能很好地处理任何工作负载,CPU在单线程难以并行化的代码中,或者在具有复杂控制流(由于分支预测器)或内存局部性(由于更好的缓存和预取)的代码中仍然表现得更好。GPGPU在执行非常直接的、高度并行的矢量化代码方面通常更好

事实上,这种计算方法吸引了足够的注意力来创建新的产品线(例如,Formly Larrabee),并增强现有GPU(例如,和其他)

编辑

再读一遍你的问题——如果你的意思是在这样的GPGPU上运行实际的CPU ISA,而不仅仅是一些一般的CPU任务,那么最好的选择是上面提到的Xeon Phi,它的目的是基于与CPU相同的ISA(这是我所知的唯一x86 GPGPU)

GPU的图灵完成。因此,这是可能的。这是否可行是另一回事。我怀疑它是,除了作为一种智力活动;GPU经过优化,可以做与CPU截然不同的事情。你也看到了,是的,你肯定是对的,这是不合逻辑的。然而,正如我所说的,至少从我自己的角度来看,将结果视为一个实验会有点有趣。我期待着看到你们努力的结果。确实如此。如果你能做到这一点,并为普通应用程序的CPU提供一个有价值的加速,你会很富有。也许,我会很富有。我还希望编写一个可以切换GPU模式的应用程序,比如你可以设置它像GPU一样正常工作,或者你可以设置它像CPU一样工作。我没有那么多编程经验,所以谁知道呢。但对于那些不完全需要图形加速,只想将计算机用于一般用途活动的人来说,它可能很有用。我会考虑一下,也许你是对的;我可以变得富有。这取决于人们是否认为它有用。但如果其他人想分享一些想法,就自由了。GPU是图灵完整的。因此,这是可能的。这是否可行是另一回事。我怀疑它是,除了作为一种智力活动;GPU经过优化,可以做与CPU截然不同的事情。你也看到了,是的,你肯定是对的,这是不合逻辑的。然而,正如我所说的,至少从我自己的角度来看,将结果视为一个实验会有点有趣。我期待着看到你们努力的结果。确实如此。如果你能做到这一点,并为普通应用程序的CPU提供一个有价值的加速,你会很富有。也许,我会很富有。我还希望编写一个可以切换GPU模式的应用程序,比如你可以设置它像GPU一样正常工作,或者你可以设置它像CPU一样工作。我没有那么多编程经验,所以谁知道呢。但对于那些不完全需要图形加速,只想将计算机用于一般用途活动的人来说,它可能很有用。我会考虑一下,也许你是对的;我可以变得富有。这取决于人们是否认为它有用。但是如果其他人想分享一些想法,我就自由了。啊,是的。但我恐怕我目前拥有的GPU不是通用GPU。买一个是没有意义的,只是为了给它编程。但这确实回答了我的问题,所以谢谢@spicedawgx,检查它是否支持上述两种语言中的一种。GPU很弱,控制流很复杂,不是因为分支预测很弱,而是因为SIMD方向。虽然GPU允许“线程”(相当于SIMD数据通道)的差异大于纯SIMD(即使使用预测),但差异比CPU上的差异更为有限,并降低了性能。GPU对于缓存和内存控制器来说也是吞吐量而不是延迟导向的(尽管集成CPU-GPU芯片似乎使用面向CPU的内存控制器),因此如果延迟不被并行性所掩盖,那么像遍历链表这样的事情就更慢了。啊,是的。但我恐怕我目前拥有的GPU不是通用GPU。买一个是没有意义的,只是为了给它编程。但这确实回答了我的问题,所以谢谢@SpicesDawGx,检查是否有问题