tv域名的网站,超级seo企业网站系统,免费浏览外国网站的软件,网页设计与网站建设毕业设计VSCodeCMake简直就是C程序开发者的福音#xff0c;无论是进行Qt开发#xff0c;音视频开发#xff0c;后端程序开发#xff0c;Cuda开发#xff0c;CMake都是神一样的存在。 首先确保你已经安装好了Cuda Toolkit#xff0c;比如我的是Cuda 12.3。 确保你已经配置了环境变… VSCodeCMake简直就是C程序开发者的福音无论是进行Qt开发音视频开发后端程序开发Cuda开发CMake都是神一样的存在。 首先确保你已经安装好了Cuda Toolkit比如我的是Cuda 12.3。 确保你已经配置了环境变量 VSCode下载好插件 CMakeLists.txt如下
cmake_minimum_required(VERSION 3.18)
project(CudaTest LANGUAGES CXX CUDA)
# 设置CUDA标准
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
#设置CUDA架构
set(CMAKE_CUDA_ARCHITECTURES 75)
# 添加CUDA头文件
include_directories($ENV{CUDA_PATH}/include)
# 添加可执行文件
add_executable(cuda_test cuda_kernel.cu) main.cu如下
#include stdio.h
#include cuda_runtime.h// CUDA核函数执行向量加法
__global__ void vectorAdd(const float *a, const float *b, float *c, int n) {int idx blockIdx.x * blockDim.x threadIdx.x;if (idx n) {c[idx] a[idx] b[idx];}
}
// 验证GPU计算结果
void verifyResult(float *a, float *b, float *c, int n) {for (int i 0; i n; i) {if (fabs(a[i] b[i] - c[i]) 1e-5) {printf(计算结果错误\n);return;}}printf(计算结果正确\n);
}
int main() {const int n 1000;const int size n * sizeof(float);float *h_a (float*)malloc(size);float *h_b (float*)malloc(size);float *h_c (float*)malloc(size);for (int i 0; i n; i) {h_a[i] rand() / (float)RAND_MAX;h_b[i] rand() / (float)RAND_MAX;}float *d_a, *d_b, *d_c;cudaMalloc(d_a, size);cudaMalloc(d_b, size);cudaMalloc(d_c, size);cudaMemcpy(d_a, h_a, size, cudaMemcpyHostToDevice);cudaMemcpy(d_b, h_b, size, cudaMemcpyHostToDevice);int threadsPerBlock 256;int blocksPerGrid (n threadsPerBlock - 1) / threadsPerBlock;vectorAddblocksPerGrid, threadsPerBlock(d_a, d_b, d_c, n);cudaMemcpy(h_c, d_c, size, cudaMemcpyDeviceToHost);verifyResult(h_a, h_b, h_c, n);cudaFree(d_a);cudaFree(d_b);cudaFree(d_c);free(h_a);free(h_b);free(h_c);return 0;
}创建一个空文件夹
按下Ctrl shift P点击CMake:Configure。 选择工具包必须选择VS2022的amd64架构不能用mingw build文件生成完毕 打开CMake插件博主将CMake插件的窗口移动到右边窗口了将copilot切换为CMake插件窗口(你们下载好的CMake插件窗口应该在左边所以不用切换) 点击设置生成目标 选择main.exe 点击运行 编译完成 输出结果 至此VSCode加CMake编译cuda程序配置完毕。