Разгрузка OpenMP говорит о фатальной ошибке: не удалось найти Accel / nvptx-none / mkoffload - PullRequest
1 голос
/ 12 июля 2020

Я пытаюсь скомпилировать следующую простую программу разгрузки графического процессора OpenMP с G ++ 9.3.0:

#include <iostream>

int main(){
  const int N=1000;
  int d[N];

  for(auto i=0;i<N;i++)
    d[i] = 1;

  #pragma omp target teams distribute parallel for map(tofrom:d[0:N])
  for(size_t i=0;i<N;i++){
    d[i] *= 3*i+1;
  }

  for(int i=0;i<N;i++)
    std::cout<<d[i]<<" ";
  std::cout<<std::endl;
}

Я компилирую с

g++ -fopenmp -O3 gpu_test.cpp

Однако, когда я пытаюсь для компиляции я получаю следующее сообщение об ошибке:

lto-wrapper: fatal error: could not find accel/nvptx-none/mkoffload in /usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ (consider using ‘-B’)

Как это исправить?

1 Ответ

1 голос
/ 12 июля 2020

Вы не установили возможности выгрузки G CC. В системах Ubuntu / Debian это можно сделать с помощью:

sudo apt install gcc-offload-nvptx

Или установить для конкретной c версии G CC, например,

sudo apt install gcc-9-offload-nvptx
...