Запрос простейшего примера целевого графического процессора OpenMP - PullRequest
0 голосов
/ 29 января 2020

Может кто-нибудь дать мне простую программу на C ++, использующую OpenMP с GPU Nvidia в качестве цели, и дать мне строку для ее компиляции?

Я использую Ubuntu 19.10 на двухъядерном Intel с двумя ядрами Xeon.

Соответствующие пакеты, которые я установил, включают в себя:

g++-9                       9.2.1-9ubuntu2
gcc-9-offload-nvptx         9.2.1-9ubuntu2
libgomp-plugin-nvptx1:amd64 9.2.1-9ubuntu2 
nvptx-tools                 0.20180301-1   

Я часами искал и пробовал советы, некоторые из которых противоречивы, а большая часть, казалось бы, устарела. Например, я не хочу компилировать компилятор. Вот мой минимальный нерабочий пример:

int main() {
  double s;
#pragma omp target teams distribute parallel for reduction(+:s) map(tofrom:s)
  for (int idx = 0; idx < 1000; ++idx) s+= idx;
  std::cout << s << std::endl;
}

Как я его скомпилировал: g++ target2.cc -fopenmp -fno-stack-protector

Вывод:

cc1plus: warning: could not emit HSAIL for the function [-Whsa]
cc1plus: note: support for HSA does not implement non-gridified OpenMP parallel constructs.
munmap_chunk(): invalid pointer
mkoffload: fatal error: x86_64-linux-gnu-accel-nvptx-none-gcc-9 terminated with signal 6 [Aborted], core dumped
compilation terminated.
lto-wrapper: fatal error: /usr/lib/gcc/x86_64-linux-gnu/9//accel/nvptx-none/mkoffload returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
[1]    29044 exit 1     g++ target2.cc -fopenmp -fno-stack-protector

Помощь? Спасибо.

1 Ответ

0 голосов
/ 04 марта 2020

Я не знаю, как был скомпилирован ваш пакет g cc -offload. Но вы можете попробовать использовать (добавив) флаг компилятора '-foffload = nvptx-none'.

...