diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/cuda/12 cuda dependency (mixed) | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/cuda/12 cuda dependency (mixed)')
3 files changed, 49 insertions, 0 deletions
diff --git a/meson/test cases/cuda/12 cuda dependency (mixed)/kernel.cu b/meson/test cases/cuda/12 cuda dependency (mixed)/kernel.cu new file mode 100644 index 000000000..7daaa6839 --- /dev/null +++ b/meson/test cases/cuda/12 cuda dependency (mixed)/kernel.cu @@ -0,0 +1,8 @@ +#include <cuda_runtime.h> + +__global__ void kernel (void){ +} + +void do_cuda_stuff(void) { + kernel<<<1,1>>>(); +} diff --git a/meson/test cases/cuda/12 cuda dependency (mixed)/meson.build b/meson/test cases/cuda/12 cuda dependency (mixed)/meson.build new file mode 100644 index 000000000..5df4f846e --- /dev/null +++ b/meson/test cases/cuda/12 cuda dependency (mixed)/meson.build @@ -0,0 +1,4 @@ +project('cuda dependency', 'cpp', 'cuda') + +exe = executable('prog', 'prog.cpp', 'kernel.cu', dependencies: dependency('cuda', modules: ['cublas'])) +test('cudatest', exe) diff --git a/meson/test cases/cuda/12 cuda dependency (mixed)/prog.cpp b/meson/test cases/cuda/12 cuda dependency (mixed)/prog.cpp new file mode 100644 index 000000000..50bb156ad --- /dev/null +++ b/meson/test cases/cuda/12 cuda dependency (mixed)/prog.cpp @@ -0,0 +1,37 @@ +#include <cuda_runtime.h> +#include <cublas_v2.h> +#include <iostream> + +void do_cuda_stuff(void); + +int cuda_devices(void) { + int result = 0; + cudaGetDeviceCount(&result); + return result; +} + +int main(void) { + int n = cuda_devices(); + if (n == 0) { + std::cout << "No CUDA hardware found. Exiting.\n"; + return 0; + } + + std::cout << "Found " << n << " CUDA devices.\n"; + + do_cuda_stuff(); + + cublasHandle_t handle; + if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { + std::cout << "cuBLAS initialization failed. Exiting.\n"; + return -1; + } + + std::cout << "Initialized cuBLAS\n"; + if (cublasDestroy(handle) != CUBLAS_STATUS_SUCCESS) { + std::cout << "cuBLAS de-initialization failed. Exiting.\n"; + return -1; + } + + return 0; +} |