API:
main.cu
#include"book.h"
int main(void)
{
cudaDeviceProp prop;
int dev;
HANDLE_ERROR(cudaGetDevice(&dev));
printf("ID of current CUDA device: %d\n",dev);
memset(&prop,0,sizeof(cudaDeviceProp));
prop.major=1;
prop.minor=3;
HANDLE_ERROR(cudaChooseDevice(&dev,&prop));
printf("ID of CUDA device closest to revision 1.3: %d \n",dev);
HANDLE_ERROR(cudaSetDevice(dev));
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(Hello-world CUDA)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug)
set(CUDA_NVCC_FLAGS -O3;-G;-g)
set(CUDA_INCLUDE_DIR /usr/local/cuda/include)
set(BOOK_INCLUDE /home/wang/projects/cuda-examples/includes)
set(LIBS_DIR /usr/local/cuda/lib64)
include_directories(${CUDA_INCLUDE_DIR} ${BOOK_INCLUDE})
link_directories(${LIBS_DIR})
add_executable(${PROJECT_NAME} main.cu)
target_link_libraries(${PROJECT_NAME} libcudart.so)
信息打印:
ID of current CUDA device: 0
ID of CUDA device closest to revision 1.3: 0