OpenMP 可以扩展到包括图形处理器吗?
Can OpenMP be extended to include graphics processors?
我正在阅读 OpenMP 和其他与并行处理相关的主题,发现其中大量内容声称 CUDA 或 OpenCL 将是此类系统的未来。但是,我认为 OpenMP 的一些修改版本将是最好的解决方案,并且看不出 GPU 不应该 运行 线程的原因。
所以我的问题是,GPU 运行 线程能否与 CPU 一样好?OpenMP 是否可以扩展以支持 GPU?这有什么理论上的问题吗?
我读到最新的 OpenMP 标准支持 GPU,但没有一个实现。如果有一个实现,它比 OpenCL 使用的 'kernel' 模型更好或更差?
GPU 通常实现不同于 CPU 的多重处理模型。 Common CPU 实现 SIMD SMP, so every processor core can execute independant from another core code and operate on the independant data. However GPUS usually implement SIMD 模型,这基本上意味着 Cores 只能在数据数组上执行 same 指令序列。
OpenMP 非常适合 SISD 模型,但 SIMD 存在一些局限性,因此开发了特殊的库,如 OpenCL 或 CUDA
can GPUs run threads just as well as CPU's
GPU 线程和现代多核 CPU 线程的典型定义在行为和功能上有很大不同。 GPU 线程在某种程度上具有支持线程的所有必要特性,但试图在 GPU 线程上强加 CPU 风格的线程模型通常会导致 GPU 性能不佳。 GPU 线程需要以一致的方式分组工作,以实现高性能。因此,(见下文)OpenMP4 加速器模型 与用于多核 CPU 加速的传统 OpenMP 指令看起来不同。
can OPENMP be extended to support GPUs.
OpenMP 4 具有加速器模型指令功能(OMP4 中的新功能)。因此,肯定有可能(理论上)将 OpenMP 风格的加速扩展到加速器(GPU、Xeon Phi 等)
至少对于 GPU,此 OpenMP 指令功能通常看起来与用于 ordinary/traditional 在多核 CPUs 上使用 OpenMP 的指令注释类型明显不同。
there doesnt exist any implementation of one.
该标准最近发布,编译器供应商可能需要一些时间来实施该标准。 rose compiler is an example of a research-oriented compiler that was used to test the (early implementation of the) OpenMP 4 accelerator model. 。
另请注意,OpenMP 是一个不断发展的标准,加速器模型非常新,因此未来可能 change/evolve 在某种程度上,至少在加速器模型中。
我正在阅读 OpenMP 和其他与并行处理相关的主题,发现其中大量内容声称 CUDA 或 OpenCL 将是此类系统的未来。但是,我认为 OpenMP 的一些修改版本将是最好的解决方案,并且看不出 GPU 不应该 运行 线程的原因。
所以我的问题是,GPU 运行 线程能否与 CPU 一样好?OpenMP 是否可以扩展以支持 GPU?这有什么理论上的问题吗?
我读到最新的 OpenMP 标准支持 GPU,但没有一个实现。如果有一个实现,它比 OpenCL 使用的 'kernel' 模型更好或更差?
GPU 通常实现不同于 CPU 的多重处理模型。 Common CPU 实现 SIMD SMP, so every processor core can execute independant from another core code and operate on the independant data. However GPUS usually implement SIMD 模型,这基本上意味着 Cores 只能在数据数组上执行 same 指令序列。
OpenMP 非常适合 SISD 模型,但 SIMD 存在一些局限性,因此开发了特殊的库,如 OpenCL 或 CUDA
can GPUs run threads just as well as CPU's
GPU 线程和现代多核 CPU 线程的典型定义在行为和功能上有很大不同。 GPU 线程在某种程度上具有支持线程的所有必要特性,但试图在 GPU 线程上强加 CPU 风格的线程模型通常会导致 GPU 性能不佳。 GPU 线程需要以一致的方式分组工作,以实现高性能。因此,(见下文)OpenMP4 加速器模型 与用于多核 CPU 加速的传统 OpenMP 指令看起来不同。
can OPENMP be extended to support GPUs.
OpenMP 4 具有加速器模型指令功能(OMP4 中的新功能)。因此,肯定有可能(理论上)将 OpenMP 风格的加速扩展到加速器(GPU、Xeon Phi 等)
至少对于 GPU,此 OpenMP 指令功能通常看起来与用于 ordinary/traditional 在多核 CPUs 上使用 OpenMP 的指令注释类型明显不同。
there doesnt exist any implementation of one.
该标准最近发布,编译器供应商可能需要一些时间来实施该标准。 rose compiler is an example of a research-oriented compiler that was used to test the (early implementation of the) OpenMP 4 accelerator model.
另请注意,OpenMP 是一个不断发展的标准,加速器模型非常新,因此未来可能 change/evolve 在某种程度上,至少在加速器模型中。