cuda_utils_kernels.cu 837 Bytes
Newer Older
1
2
#ifdef USE_ROCM
  #include <hip/hip_runtime.h>
3
  #include <hip/hip_runtime_api.h>
4
#endif
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int get_device_attribute(
    int attribute,
    int device_id)
{
    int device, value;
    if (device_id < 0) {
        cudaGetDevice(&device);
    }
    else {
        device = device_id;
    }
    cudaDeviceGetAttribute(&value, static_cast<cudaDeviceAttr>(attribute), device);
    return value;
}
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35


int get_max_shared_memory_per_block_device_attribute(
    int device_id)
{
int attribute;    
// https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html
// cudaDevAttrMaxSharedMemoryPerBlockOptin = 97 if not is_hip() else 74

#ifdef USE_ROCM
    attribute = hipDeviceAttributeMaxSharedMemoryPerBlock;
#else
    attribute = cudaDevAttrMaxSharedMemoryPerBlockOptin;
#endif

    return get_device_attribute(attribute, device_id);
}