用于加速器的OpenMP 4.0:Nvidia GPU目标
OpenMP 4.0 for accelerators: Nvidia GPU target
我正尝试使用英特尔C++15.0编译器在Visual Studio 2012中使用openMP加速器(openMP 4.0(。
我的加速器是Nvidia GeForce GTX 670。
此代码不编译:
#include <stdio.h>
#include<iostream>
#include <omp.h>
using namespace std;
int main(){
#pragma omp target
#pragma omp parallel for
for (int i=0; i<1000; i++)
cout<<"Hello world, i am number "<< i <<endl;
}
当然,当我评论#pragma omp target
行时,一切都很顺利。
当我在OpenMP 4.0规范中做任何与加速器相关的事情时,我也会遇到同样的问题(例如omp_get_num_devices()
函数,它应该返回我系统中潜在加速器的数量(
我得到的是以下错误和警告:
error #10340: problem encountered when performing target compilation
error : *MIC* cannot open source file "stdio.h"
warning #10362: Environment configuration problem encountered. Please check for proper MPSS installation and environment setup.
由于*MIC*
标签,我的理论是:默认情况下,我的英特尔编译器正在尝试构建MIC应用程序(用于Xeon Phi加速器(,并且不接受我的Nvidia GPU作为有效的加速器。这种可能性有多大?这是我可以在VS项目属性中管理的东西吗?
如果没有,我可能会遇到一个更严重的问题:OpenMP 4.0是否支持Nvidia GPU作为加速器(我知道OpenACC就是为了这个目的而设计的,但出于经济原因,我宁愿尽我所能使用每一个OpenMP功能(
任何帮助都将不胜感激。
对于您的第一个问题:ICC仅支持Intel MIC进行卸载。因此,您不能使用带有ICC的OpenMP 4.0来编程您的Nvidia GPU。
我的知识可能已经过时了,但唯一可用的针对Nvidia GPU的OpenMP 4.0编译器是Cray随其集群销售的Cray编译器。也许PGI编译器可以支持OpenMP 4.0,但这只是一个猜测。无论如何,这些编译器在Windows平台上将不受支持。
OpenMP 4.0确实支持Nvidia GPU作为加速器。你真正想知道的是,你的特定编译器对OpenMP的实现是否支持它。如果你一直使用MSVC(甚至在后面使用英特尔编译器(,那么答案是否定的。不过,你可能想看看它是如何与clang一起工作的。
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- 跨平台 GPU 计算
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 请求最简单的 OpenMP 目标 GPU 示例
- 在 NVIDIA GEFORCE GTX 1050 上下载适用于 Windows 10 的 openCL 1.2
- DirectX 11 如何处理来自 GPU 上的 sharedHandle 的图像
- 编译 GPU 的张量流示例自定义操作
- 多 GPU 批处理 1D FFT:似乎只有一个 GPU 可以工作
- OpenCL 在 NVIDIA 和 Intel GPU 上启动内核时CL_INVALID_COMMAND_QUEUE
- 使 C++ Pi 近似在 GPU Nvidia 970M CUDA 上的 Paralell 中运行
- 使用 NVIDIA GPU 在 Cygwin 中链接 OpenCL 库时遇到问题
- 我可以为nVIDIA GPU编写OpenCL-C++内核吗
- 如何使用NVidia GPU在Windows下逐步调试OpenCL GPU应用程序
- 用于加速器的OpenMP 4.0:Nvidia GPU目标
- GLSL 着色器在英特尔的集成 GPU 上运行完美,但在 NVIDIA 上没有任何运行
- 在Optimus笔记本电脑中以编程方式强制NVIDIA GPU
- OpenGL程序与英特尔高清和NVidia GPU的使用
- 在多个Nvidia GPU上使用以下代码的分段故障