Создайте ядро ​​CUDA с помощью Meson - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь создать приложение, использующее ядро ​​Cuda. Для этого я использую систему сборки мезонов , но безуспешно. В основном я пытаюсь сделать следующее:

//main.cpp

extern void kernel_function();

int main(int argc, char *argv[]){

  // some logic here...

  kernel_function();
  return 0;
}
//kernel.cu

__global__ void kernel(){
  // some code here...
}

void kernel_function(){

  dim3 threads( 2, 1 );
  dim3 blocks( 1, 1 );

  kernel<<< blocks, threads >>>();
}

Я могу скомпилировать приведенный выше код с помощью следующих команд:

g++ -c main.cpp
nvcc -c kernel.cu
nvcc -o main main.o kernel.o

Как я могу воспроизвести этот процесс компиляции что я делаю на терминале с Meson?

1 Ответ

1 голос
/ 29 мая 2020

В простейшем случае это может быть что-то вроде:

project('cuda dependency', 'cpp', 'cuda')
executable('main', 'main.cpp', 'kernel.cu')

И запустить с

$ CXX=g++ meson build
$ ninja -C build

(на основе пример ).

Но в дальнейшем вам может потребоваться добавить зависимости, например

dep = dependency('cuda', version : '>=10', modules : ['cublas'])
executable(..., dependencies: dep)

, или установить некоторые специальные флаги компилятора с помощью модуля cuda, проверьте эту ссылку на мезоне.

...