Enables -Db_sanitize=undefined and company. Also serves as a testcase for NVCC comma-shielding: Because the test- case declares `b_sanitize=address,undefined`, the host GCC compiler needs `-fsanitize=address,undefined`, but this stands a danger of being split by NVCC when wrapped with `-Xcompiler=args,args`. Special, already-existing comma-shielding codepaths activate to prevent this splitting. Closes #8394.0.57
parent
7182685b22
commit
84bf8e1f73
3 changed files with 40 additions and 0 deletions
@ -0,0 +1,4 @@ |
|||||||
|
project('simple', 'cuda', version : '1.0.0', |
||||||
|
default_options: ['b_sanitize=address,undefined']) |
||||||
|
|
||||||
|
libtests = shared_library('tests', 'prog.cu') |
@ -0,0 +1,30 @@ |
|||||||
|
#include <iostream> |
||||||
|
|
||||||
|
int run_tests(void) { |
||||||
|
int cuda_devices = 0; |
||||||
|
std::cout << "CUDA version: " << CUDART_VERSION << "\n"; |
||||||
|
cudaGetDeviceCount(&cuda_devices); |
||||||
|
if(cuda_devices == 0) { |
||||||
|
std::cout << "No Cuda hardware found. Exiting.\n"; |
||||||
|
return 0; |
||||||
|
} |
||||||
|
std::cout << "This computer has " << cuda_devices << " Cuda device(s).\n"; |
||||||
|
cudaDeviceProp props; |
||||||
|
cudaGetDeviceProperties(&props, 0); |
||||||
|
std::cout << "Properties of device 0.\n\n"; |
||||||
|
|
||||||
|
std::cout << " Name: " << props.name << "\n"; |
||||||
|
std::cout << " Global memory: " << props.totalGlobalMem << "\n"; |
||||||
|
std::cout << " Shared memory: " << props.sharedMemPerBlock << "\n"; |
||||||
|
std::cout << " Constant memory: " << props.totalConstMem << "\n"; |
||||||
|
std::cout << " Block registers: " << props.regsPerBlock << "\n"; |
||||||
|
|
||||||
|
std::cout << " Warp size: " << props.warpSize << "\n"; |
||||||
|
std::cout << " Threads per block: " << props.maxThreadsPerBlock << "\n"; |
||||||
|
std::cout << " Max block dimensions: [ " << props.maxThreadsDim[0] << ", " << props.maxThreadsDim[1] << ", " << props.maxThreadsDim[2] << " ]" << "\n"; |
||||||
|
std::cout << " Max grid dimensions: [ " << props.maxGridSize[0] << ", " << props.maxGridSize[1] << ", " << props.maxGridSize[2] << " ]" << "\n"; |
||||||
|
std::cout << "\n"; |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue