Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // cpuid.h CUDA attempt
- #include <cuda_runtime.h>
- int GetCUDACapability() {
- int deviceCount;
- cudaError_t error_id = cudaGetDeviceCount(&deviceCount);
- if (error_id != cudaSuccess) {
- return 0;
- }
- int maxCapability = 0;
- for (int i = 0; i < deviceCount; i++) {
- cudaDeviceProp deviceProperties;
- cudaGetDeviceProperties(&deviceProperties, i);
- maxCapability = max(maxCapability, deviceProperties.major);
- }
- return maxCapability;
- }
- void SetMaxCUDA(int major) {
- int deviceCount;
- cudaError_t error_id = cudaGetDeviceCount(&deviceCount);
- if (error_id != cudaSuccess) {
- return;
- }
- int maxCapability = 0;
- int maxCapabilityDevice = 0;
- for (int i = 0; i < deviceCount; i++) {
- cudaDeviceProp deviceProperties;
- cudaGetDeviceProperties(&deviceProperties, i);
- if (deviceProperties.major > maxCapability) {
- maxCapability = deviceProperties.major;
- maxCapabilityDevice = i;
- }
- }
- if (major <= maxCapability) {
- cudaSetDevice(maxCapabilityDevice);
- }
- }
- /* ai comment###
- This code uses the cuda runtime library to get the CUDA capabilities of the host GPU, and sets the highest CUDA instruction set to use at runtime. You would need to include this new code in your project and call the GetCUDACapability() and SetMaxCUDA() functions as appropriate.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement