小编Jos*_*iah的帖子

如何使用OpenMP提供的GPU?

我试图使用OpenMP在GPU上运行一些代码,但我没有成功.在我的代码中,我使用for循环执行矩阵乘法:一次使用OpenMP pragma标签,一次不使用.(这样我可以比较执行时间.)在第一个循环后我调用omp_get_num_devices()(这是我的主要测试,看看我是否真的连接到GPU.)无论我尝试什么,omp_get_num_devices()总是返回0.

我使用的电脑有两个NVIDIA Tesla K40M GPU.CUDA 7.0和CUDA 7.5在计算机上作为模块提供,而CUDA 7.5模块通常是活动的.gcc 4.9.3,5.1.0和7.1.0都可用作模块,gcc 7.1.0模块通常是活动的.我正在编译我的代码$ g++ -fopenmp -omptargets=nvptx64sm_35-nvidia-linux ParallelExperimenting.cpp -o ParallelExperimenting.我已经使用CPU成功并行化了OpenMP代码,但没有使用GPU.

我的主要目标是omp_get_num_devices()返回2作为我可以检测并使用带有OpenMP的GPU的证据.我收到的任何帮助将不胜感激.

这是我用来检查GPU是否正确使用的代码:

#include <omp.h>
#include <fstream>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#include <cstdio>
#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;

double A [501][501];
double B [501][501];
double C [501][501][501];
double D [501][501];
double E [501][501];
double F [501][501][501];
double dummyvar;
int Mapped [501]; …
Run Code Online (Sandbox Code Playgroud)

c++ gcc gpgpu openmp offloading

5
推荐指数
1
解决办法
3849
查看次数

标签 统计

c++ ×1

gcc ×1

gpgpu ×1

offloading ×1

openmp ×1