第1个CUDA程序

VS2013+CUDA6.5编译环境搭建

1.      安装VS2013

2.      安装CUDA6.5

可能遇到的问题:缺少Intel的驱动,VS版本太低

创建第1个CUDA程序:

1.      创建Win32空项目


2.      添加依赖项


3.      打开项目属性页


4.      打开配置属性中的VC++目录,在包含目录中加入$(CUDA_INC_PATH)

5.      打开链接器中的常规,在附加链接库目录中加入$(CUDA_PATH)/lib/$(PlatformName)

6.      打开链接器中的输入,在附加依赖项中加入cudart.lib


7.      创建C++空项目,取名为FirstCUDA.cu


8.      编辑FirstCUDA.cu如下:

 

 

 

 

 

#include <iostream>

#include <cuda_runtime.h>

 

__global__ void add(int a, int b, int *c){

    *c = a + b;

}

 

 

int main(){

    int c;

    int *dev_c;

    cudaMalloc((void **)&dev_c, sizeof(int));

 

    add<<< 1, 1 >>>(2, 7,dev_c);

 

    cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);

    printf("2 + 7 =%d\n",c);

    cudaFree(dev_c);

 

    return 0;

}


9.编译后运行结果如下


 

### Linux 上 CUDA 的安装 为了在Linux系统上成功安装CUDA工具包并运行首个CUDA程序,需遵循一系列特定的操作指南。 #### 准备工作 确保操作系统满足最低版本需求,并已更新至最新状态。对于大多数现代Linux发行版而言,建议先移除任何旧版本的NVIDIA驱动或CUDA软件包[^1]。 #### 下载与安装 NVIDIA 驱动 访问[NVIDIA官方网站](https://www.nvidia.com/)下载适用于当前系统的图形驱动程序。按照官方说明完成驱动安装过程,在此期间可能需要重启计算机以使更改生效。 #### 获取 CUDA 工具包 前往[CUDA Toolkit Archive页面](https://developer.nvidia.com/cuda-toolkit-archive),挑选适合操作环境的具体版本进行下载。推荐采用.run文件形式而非.deb/.rpm包来规避潜在依赖冲突问题。 #### 执行安装脚本 通过命令行界面执行所下载的CUDA安装器(.run文件), 使用`sudo sh cuda_<version>_linux.run`指令启动安装向导。过程中可根据提示选择组件以及同意许可协议等内容。 ```bash $ sudo sh cuda_11.8.0_520.61.05_linux.run ``` #### 设置环境变量 编辑~/.bashrc或其他shell配置文件,添加如下路径设置以便于后续编译链接: ```bash export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 保存修改后的配置文件并通过source重新加载使之立即生效: ```bash $ source ~/.bashrc ``` #### 编写并测试第一个 CUDA C/C++ 程序 创建名为vectorAdd.cu的新源码文件,输入以下简单矢量加法示例代码片段: ```cpp #include <stdio.h> __global__ void add(int n, float *x, float *y) { int index = threadIdx.x; int stride = blockDim.x; for (int i = index; i < n; i += stride) y[i] = x[i] + y[i]; } int main(void) { int N = 1<<20; float *x, *y; // Allocate Unified Memory – accessible from CPU or GPU cudaMallocManaged(&x, N*sizeof(float)); cudaMallocManaged(&y, N*sizeof(float)); for (int i = 0; i < N; i++) { x[i] = 1.0f; y[i] = 2.0f; } // Run kernel on one CUDA device int blockSize = 256; int numBlocks = (N + blockSize - 1) / blockSize; add<<<numBlocks, blockSize>>>(N, x, y); // Wait for GPU to finish before accessing on host cudaDeviceSynchronize(); printf("%f + %f = %f\n", x[0], y[0], y[0]); cudaFree(x); cudaFree(y); } ``` 利用nvcc编译上述代码生成可执行二进制文件,最后执行该程序验证一切正常运作: ```bash $ nvcc vectorAdd.cu -o vectorAdd $ ./vectorAdd ``` 如果看到预期输出,则表明CUDA开发环境搭建完毕且能够正常使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值