当前位置: 首页 > news >正文

CUDA系列之CUDA安装与使用

文章目录

  • 1. 前言
  • 2. 环境准备
  • 3. 配置环境变量
  • 4. 第一个cuda程序

1. 前言

从本期开始,将由浅入深开始CUDA系列的文章分享,此系列所有文章全部免费,欢迎大家体验白嫖的快乐!
其实很早开始就想写CUDA系列,酝酿了很久,CUDA真是一门非常不错的异构编程语言,目前在大模型,AI人工智能,自动驾驶以及CV等领域大放异彩。因为目前我从事的真好跟CUDA相关的工作,希望通过我的分享,让更多的人了解,甚至喜欢上CUDA这门编程语言。
Tips:

  • 推荐书籍: 《CUDA C编程 权威指南》
  • Documentation:
    • https://docs.nvidia.com/cuda
    • https://docs.nvidia.com/cuda/archive/12.6.0/parallel-thread-execution/index.html

2. 环境准备

访问cuda官网获取安装脚本
在这里插入图片描述
在这里插入图片描述
安装完成后,在终端输入nvidia-smi, 显式:
在这里插入图片描述
表示安装成功

3. 配置环境变量

打开.bashrc,设置环境变量

vim ~/.bashrc

在最后添加:

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

配置完成后,source ~/.bashrc, 输入nvcc -Vnvcc --version,能打印出如下信息,表示安装成功
在这里插入图片描述
安装成功后,接下来就可以开始我们的cuda编程之旅啦!

4. 第一个cuda程序

#include <stdio.h>__global__ void helloWorldKernel(){printf("我是线程%d,欢迎来到CUDA的世界!\n", threadIdx.x);
}int main() {helloWorldKernel<<<1, 32>>>();cudaDeviceSynchronize();return 0;
}

编译

/usr/local/cuda/bin/nvcc -I/usr/local/cuda/include -O3 -DNDEBUG  --generate-code=arch=compute_90,code=[compute_90,sm_90] -std=c++17 hello_world.cu -o hello_world

运行输出:

我是线程0,欢迎来到CUDA的世界!
我是线程1,欢迎来到CUDA的世界!
我是线程2,欢迎来到CUDA的世界!
我是线程3,欢迎来到CUDA的世界!
我是线程4,欢迎来到CUDA的世界!
我是线程5,欢迎来到CUDA的世界!
我是线程6,欢迎来到CUDA的世界!
我是线程7,欢迎来到CUDA的世界!
我是线程8,欢迎来到CUDA的世界!
我是线程9,欢迎来到CUDA的世界!
我是线程10,欢迎来到CUDA的世界!
我是线程11,欢迎来到CUDA的世界!
我是线程12,欢迎来到CUDA的世界!
我是线程13,欢迎来到CUDA的世界!
我是线程14,欢迎来到CUDA的世界!
我是线程15,欢迎来到CUDA的世界!
我是线程16,欢迎来到CUDA的世界!
我是线程17,欢迎来到CUDA的世界!
我是线程18,欢迎来到CUDA的世界!
我是线程19,欢迎来到CUDA的世界!
我是线程20,欢迎来到CUDA的世界!
我是线程21,欢迎来到CUDA的世界!
我是线程22,欢迎来到CUDA的世界!
我是线程23,欢迎来到CUDA的世界!
我是线程24,欢迎来到CUDA的世界!
我是线程25,欢迎来到CUDA的世界!
我是线程26,欢迎来到CUDA的世界!
我是线程27,欢迎来到CUDA的世界!
我是线程28,欢迎来到CUDA的世界!
我是线程29,欢迎来到CUDA的世界!
我是线程30,欢迎来到CUDA的世界!
我是线程31,欢迎来到CUDA的世界!
http://www.dtcms.com/a/308021.html

相关文章:

  • freeRTOS 消息队列
  • Cesium 快速入门(三)Viewer:三维场景的“外壳”
  • 【MySQL】MySQL大偏移量查询优化方案
  • 若依框架-前端二次开发快速入门简述
  • [硬件电路-109]:模拟电路 - 自激振荡器的原理,一种把直流能量转换成交流信号的装置!
  • Linux软件包管理器深度解析:从概念到实战
  • React开发依赖分析
  • TRAE 软件使用攻略
  • 快速搭建Node.js服务指南
  • python制作的软件工具安装包
  • c# net6.0+ 安装中文智能提示
  • 前端框架Vue3(二)——Vue3核心语法之OptionsAPI与CompositionAPI与setup
  • 超体积指标(Hypervolume Indicator,S 度量)详析
  • 【JMeter】性能测试脚本录制及完善
  • 辐射源定位方法简述
  • 【BUUCTF系列】[HCTF 2018]WarmUp1
  • 网络编程-IP
  • 计算机网络:什么是光猫
  • Hyperbrowser MCP:重新定义网页抓取与浏览器自动化的AI驱动工具
  • Solr升级9.8.0启动异常UnsupportedOperationException known Lucene classes
  • Tauri vs Electron 的全面对比
  • 生产管理升级:盘古IMS MES解锁全链路可控可溯,激活制造效率
  • LCM中间件入门(2):LCM核心实现原理解析
  • 牛客练习赛142 第四次忍界大战 并查集
  • 永磁同步电机无速度算法--直流误差抑制自适应二阶反推观测器
  • Gemini Fullstack LangGraph Quickstart(DeepSeek+Tavily版本)
  • 【React】diff 算法
  • Elasticsearch 索引及节点级别增删改查技术
  • 基于单片机胎压检测/锅炉蒸汽压力/气压检测系统
  • VBA代码解决方案第二十七讲:禁用EXCEL工作簿右上角的关闭按钮