- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
CUDA并行编程从入门到实战指南
一、CUDA编程基础入门
(一)核心概念解析
CUDA架构核心组成
主机(Host)与设备(Device):主机指CPU及其内存,设备指GPU及其显存,二者通过PCIe总线通信。
线程层次结构:线程(Thread)→线程块(Block)→网格(Grid),Block内线程可通过共享内存通信,Grid内Block间需借助全局内存。
SIMT架构:单指令多线程(SingleInstructionMultipleThreads),32个线程组成一个Warp(线程束),是GPU的基本执行单元。
内存层次体系
内存类型
访问速度
作用范围
关键特性
寄存器(Register)
最快
单个线程
私有存储,自动分配回收
共享内存(SharedMemory)
较快
线程块内
用户管理,可减少全局内存访问
全局内存(GlobalMemory)
较慢
整个Grid
容量大,需优化访问模式
常量内存(ConstantMemory)
较慢
整个Grid
只读,支持缓存优化
(二)开发环境搭建
硬件要求:支持CUDA的NVIDIA显卡(计算能力3.5及以上),推荐Turing架构及后续型号。
软件安装:
安装NVIDIA驱动程序(对应GPU型号的最新稳定版)
安装CUDAToolkit11.x(含编译器nvcc、调试工具Nsight)
配置开发环境:VisualStudio(Windows)或GCC(Linux)+CMake
验证环境:
nvcc-V#查看CUDA编译器版本
nvidia-smi#查看GPU状态及支持的CUDA版本
(三)第一个CUDA程序:向量加法
#includestdio.h
#includecuda_runtime.h
//设备端内核函数:向量加法
__global__voidvectorAdd(constfloat*A,constfloat*B,float*C,intn){
inti=blockDim.x*blockIdx.x+threadIdx.x;//计算线程全局索引
if(in){//避免线程越界
C[i]=A[i]+B[i];
}
}
//主机端函数
intmain(){
intn=1024;
size_tsize=n*sizeof(float);
//1.主机内存分配
float*h_A=(float*)malloc(size);
float*h_B=(float*)malloc(size);
float*h_C=(float*)malloc(size);
//2.初始化主机数据
for(inti=0;in;i++){
h_A[i]=i;
h_B[i]=i*2;
}
//3.设备内存分配
float*d_A,*d_B,*d_C;
cudaMalloc((void**)d_A,size);
cudaMalloc((void**)d_B,size);
cudaMalloc((void**)d_C,size);
//4.数据从主机拷贝到设备
cudaMemcpy(d_A,h_A,size,cudaMemcpyHostToDevice);
cudaMemcpy(d_B,h_B,size,cudaMemcpyHostToDevice);
//5.启动内核函数
intblockSize=256;//每个线程块的线程数
intgridSize=(n+blockSize-1)/blockSize;//线程块数量
vectorAddgridSize,blockSize(d_A,d_B,d_C,n);
//6.结果从设备拷贝回主机
cudaMemcpy(h_C,d_C,size,cudaMemcpyDeviceToHost);
//7.验证结果
for(inti=0;i5;i++){
printf(C[%d]=%f\n,i,h_C[i]);//输出:0.000000,
您可能关注的文档
- Adams夹紧机构建模、分析及优化全流程实例操作指南.docx
- 电子病历应用水平四级:实证材料与现场考察核心指南.docx
- 抖音运营核心逻辑与实操总结.docx
- 高中历史核心素养的养成路径与时代意义.docx
- 公考言语理解与表达专项精品讲义.docx
- 2024年儋州市雅星镇社区工作者考试模拟真题及答案.docx
- 2024年个人问题清单剖析及整改措施.docx
- 2024年国家统一法律职业资格考试模拟真题及答案解析.docx
- 2024年海南海口实验中学自主招生化学试题真题(含答案详解).docx
- 2025年低压电工资格考试必考题库及答案.docx
- 湖南省衡阳市第八中学2026届高三上学期第一次月考物理(原卷版).doc
- 浙江省普通高中尖峰联盟2026届高三上学期10月联考英语(原卷版).doc
- 四川省绵阳市南山中学实验学校2026届高三上学期10月月考英语(原卷版).doc
- 湖南省衡阳市第八中学2026届高三上学期第二次月考历史 Word版含解析.doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题09 功和机械能(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题10 内能及其利用(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题07 压强(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题01 机械运动(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(解析版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(原卷版).doc
最近下载
- 国家法定41种传染病大全(就诊科室、传播途径、病原体、检测方法等)及防护措施.doc VIP
- 2026届河南省青桐鸣大联考高三11月联考作文:“用一个字证明你不是机器人,你会选什么字”导写及范文.docx
- 公路工程试验检测机构等级评定基本条件要求及申请材料准备注意要点(每日一练).docx VIP
- 基于ZigBee的智能窗帘控制系统.doc VIP
- 入党志愿书(全电子版).pdf VIP
- 移动应用开发大学生职业生涯规划规划书.pptx VIP
- 江苏开放大学2023年秋《行政管理学050004》实践性环节2大作业参考答案.pdf VIP
- 2025最新幼儿园膳食委员会会议记录.docx VIP
- 小学科学教学评价中增值性评价策略研究与实践教学研究课题报告.docx
- 幼儿园膳食委员会会议记录.doc VIP
原创力文档


文档评论(0)