[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"study-material-detail-study-7":104},{"enabled":4,"title":5,"statusText":5,"buttonText":5,"campSlug":5,"stage":6,"classroomId":7,"hasClassroom":4},false,"",0,null,{"total":9,"list":10,"pageNum":44,"pageSize":45,"size":9,"startRow":44,"endRow":9,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":48,"navigateFirstPage":44,"navigateLastPage":44},3,[11,25,35],{"slug":12,"title":13,"logo":7,"liveUrl":14,"prize":15,"sponsor":16,"description":17,"organizer":18,"startTime":19,"endTime":20,"registrationDeadline":21,"status":22,"dashboardVisibility":23,"createdAt":24},"spring2026","2026春季启元人工智能大赛","https:\u002F\u002Fwww.bilibili.com\u002Fblackboard\u002Flive\u002Flive-activity-player.html?cid=1822703816&quality=0","200,000","麒麟软件有限公司","“2026春季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。\n各参赛选手需在规定的比赛周期内，依据赛事规则选定赛题并完成相应挑战，优胜者将共同角逐总额20万元的赛事奖金池，并且还将有机会获得实习和知名企业优质岗位内推资格。","启元实验室","2026-04-19 16:00:00","2026-07-13 16:00:00","2026-06-16 16:00:00","ongoing","private","2026-04-16 08:00:00",{"slug":26,"title":27,"logo":7,"liveUrl":14,"prize":28,"sponsor":7,"description":29,"organizer":18,"startTime":30,"endTime":31,"registrationDeadline":32,"status":33,"dashboardVisibility":23,"createdAt":34},"autumn2025","2025秋季启元人工智能大赛","150,000","“2025秋季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。","2025-11-08 08:00:00","2026-01-13 08:00:00","2025-12-30 08:00:00","ended","2025-11-03 08:00:00",{"slug":36,"title":37,"logo":7,"liveUrl":14,"prize":38,"sponsor":7,"description":39,"organizer":18,"startTime":40,"endTime":41,"registrationDeadline":42,"status":33,"dashboardVisibility":23,"createdAt":43},"summer2025","启元人工智能大赛(系统方向)","80,000","启元人工智能大赛由启元实验室主办，其中系统赛道基于启元实验室九源软件栈的相关开源项目，通过拉动开源社区力量，一方面促进国产智能计算生态的发展，另一方面也为人工智能系统方向的学生及从业者提供一个实践平台。","2025-07-08 08:00:00","2025-08-25 08:00:00","2025-07-22 08:00:00","2025-06-22 08:00:00",1,5,true,8,[44],{"total":45,"list":50,"pageNum":44,"pageSize":45,"size":45,"startRow":44,"endRow":45,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":103,"navigateFirstPage":44,"navigateLastPage":44},[51,62,73,84,94],{"id":52,"slug":53,"title":54,"logo":55,"publicLiveEmbedUrl":14,"description":56,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":16,"startTime":58,"endTime":59,"status":22,"dashboardVisibility":60,"createdAt":58,"updatedAt":61},"019eeeff-6b00-7d55-a629-efafded3e232","summer2026","2026年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2026-06\u002F019eef7f-7816-7828-9309-79c2c61dd568.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tqXtkjDVEuQBnsL07LARCfQJvdE%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。","...","2026-06-22 08:00:00","2026-10-19 08:00:00","public","2026-10-12 08:00:00",{"id":63,"slug":64,"title":65,"logo":66,"publicLiveEmbedUrl":7,"description":67,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":68,"startTime":69,"endTime":70,"status":33,"dashboardVisibility":23,"createdAt":71,"updatedAt":72},"019af3f3-e06a-7245-aa8d-37dc99a69c73","winter2025","2025年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-12\u002F019afc69-b7ca-7805-91fb-605429671c01.png?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tM28gi%2FKPywJvel7AqVcxFGnKTg%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。 \n","新华三技术有限公司","2025-12-25 08:00:00","2026-03-27 08:00:00","2025-12-06 08:00:00","2026-10-22 20:24:30",{"id":74,"slug":36,"title":75,"logo":76,"publicLiveEmbedUrl":7,"description":77,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":78,"startTime":79,"endTime":80,"status":81,"dashboardVisibility":23,"createdAt":82,"updatedAt":83},"01980342-208c-7803-b3f3-19e1d31960ba","2025年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-07\u002F0198045e-28fe-78f0-95fe-23835ce58395.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=RSwSsL0Rw0AFxM%2Bz65pGHzs2YLw%3D","InfiniTensor大模型与人工智能系统训练营由启元实验室及清华大学 AI 系统方向团队发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营联合开源项目开发者、学术界大牛、工业界资深工程师参与授课与项目指导。课程采用「线上直播授课 + 在线答疑 + 项目实践辅导 」的方式进行，确保每位同学都能获得充分成长。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","北京积算科技有限公司","2025-07-14 08:00:00","2025-09-30 08:00:00","upcoming","2025-07-13 08:00:00","2026-10-22 20:24:58",{"id":85,"slug":86,"title":87,"logo":88,"publicLiveEmbedUrl":7,"description":89,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":90,"endTime":91,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":93},"01980cf9-a7d8-7796-ae86-0bbe05334add","winter2024","2024年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-ce23-7624-a287-9f07dd0d85f6.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。报名学员请阅读“导学”课程页的训练营介绍。","2025-01-05 08:00:00","2025-03-22 08:00:00","2025-07-15 08:00:00","2026-10-22 20:24:39",{"id":95,"slug":96,"title":97,"logo":98,"publicLiveEmbedUrl":7,"description":99,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":100,"endTime":101,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":102},"01980c20-363a-7dc3-8f5a-58a68e08dcc4","summer2024","2024年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-fbfa-788a-afcd-17fa9be74ff9.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区和高校，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过课程、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","2024-07-20 08:00:00","2024-09-29 08:00:00","2026-10-22 20:24:49",[44],{"currentItem":105,"processedData":125},{"img":106,"keywords":107,"treeType":44,"description":108,"showStatus":44,"updateTime":109,"type":110,"title":111,"content":112,"nextArticle":113,"createTime":109,"sortOrder":117,"canonicalPath":118,"id":119,"contentType":120,"prevArticle":121},"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_07_fm.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=uekexd71TeRF%2BBzpqvXRtTGqcfk%3D","InfiniTensor,冬季训练营,CUDA入门,并行编程,开发基础","面向 CUDA 新手介绍并行编程导论与 CUDA 入门，覆盖基础模型与开发流程。","2026-10-22 20:38:11",2,"InfiniTensor 冬季训练营 CUDA 编程方向第一课《并行编程导论与 CUDA 入门》","![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_07_zw1.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=8XeysDn548GLJN03ayp5MsrGqbU%3D)\r\n\r\n\r\n2026 年 1 月 12 日，2025 冬季 InfiniTensor 大模型与人工智能系统训练营 CUDA 编程方向第一节课《并行编程导论与 CUDA 入门》正式开讲。\r\n\r\n在深度学习、科学计算等高性能计算领域，\"并行\"已成为提升计算效率的关键技术。面对日益增长的数据量和计算需求，传统的串行编程已难以满足性能要求。本节课我们将从基础概念出发，带你了解并行编程的核心思想，并深入学习CUDA这一GPU并行计算的主流框架。本节课无需并行编程背景，但是有C++前置基础要求，有需要的同学可以在官网关注上周《编程基础课》系列课程回放。\r\n\r\n### 串行、并发与并行：概念辨析\r\n\r\n**串行**：任务按顺序依次执行，一个任务完成后再执行下一个。\r\n\r\n**并发**：多个任务交替执行，但同一时刻只有一个任务在运行。\r\n\r\n**并行**：多个任务同时执行，同一时刻有多个任务在运行。**并行在同一个时间点上可以同时处理多个任务**，从而实现更高的吞吐量和效率。\r\n\r\n\r\n\r\n### CPU并行与GPU并行：硬件设计差异\r\n\r\n**1. CPU：全能型战士**\r\n\r\n- **设计目标**：处理复杂逻辑和控制流\r\n- **硬件特点**：少量复杂核心，复杂的控制单元，追求低延迟\r\n- **典型应用**：操作系统、Web服务等需要复杂控制的场景\r\n\r\n**2. GPU：流水线工人**\r\n- **设计目标**：高效处理大规模数据并行计算\r\n- **硬件特点**：大量简单核心，简单的控制单元，追求高吞吐\r\n- **典型应用**：深度学习、图形渲染、科学计算等大规模数据并行场景\r\n\r\n> **为什么选择GPU进行深度学习计算？**\r\n> 深度学习任务需要大量重复的矩阵运算，GPU的\"以量取胜\"特性使其成为理想选择，通过大量简单核心的并行工作，实现远超CPU的计算效率。\r\n\r\n### CUDA：统一计算设备架构\r\n\r\nCUDA（Compute Unified Device Architecture）是NVIDIA开发的并行计算平台和编程模型，使开发者能在NVIDIA GPU上进行并行编程。\r\n\r\n**1. CUDA的核心特点：**\r\n\r\n- **宿主语言**：C\u002FC++，降低学习门槛\r\n- **CPU与GPU协作**：CPU负责控制逻辑，GPU负责计算密集型任务\r\n- **SIMT模型**：Single Instruction Multiple Thread，一个指令被多个线程同时执行\r\n- **自动调度**：通过参数设置，CUDA自动调度和优化GPU资源\r\n\r\n**2. CUDA编程模型：Host与Device**\r\n\r\n\r\n- **Host（主机端）**：CPU端，运行主程序和控制逻辑\r\n- **Device（设备端）**：GPU端，执行计算密集型任务\r\n\r\n**3. 内存管理**\r\n\r\n- **Host Memory**：CPU的主存（RAM）\r\n- **Device Memory**：GPU的全局内存（Global Memory）\r\n\r\n数据在Host和Device之间的传输是CUDA编程的重要环节，需要通过特定API完成。\r\n\r\n### CUDA线程层级结构\r\n\r\nCUDA采用三层结构组织线程：\r\n\r\n- **Grid**：整个并行计算的最高层级，包含多个Block\r\n- **Block**：Grid的子集，包含多个Thread\r\n- **Thread**：最小的执行单元，每个Thread执行相同指令\r\n\r\n> **线程唯一标识**：通过公式 `blockIdx * blockDim + threadIdx` 可计算任意线程的唯一索引\r\n\r\n### CUDA核函数\r\n\r\n核函数是CUDA中在GPU上执行的函数，需要使用`__global__`标识符标记。\r\n\r\n```cpp\r\n__global__ void addKernel(float *a, float *b, float *c, int n) {\r\n    int idx = blockIdx.x * blockDim.x + threadIdx.x;\r\n    if (idx \u003C n) {\r\n        c[idx] = a[idx] + b[idx];\r\n    }\r\n}\r\n```\r\n\r\n**关键点**：\r\n- 核函数在GPU上执行\r\n- 通过线程索引`idx`确定每个线程处理的数据位置\r\n- 使用`if`语句确保线程索引不超过有效数据范围\r\n\r\n### CUDA编程流程\r\n\r\n1. **Host端准备数据**：在CPU上初始化数据\r\n2. **数据传输**：将数据从Host内存复制到Device内存\r\n3. **GPU计算**：调用核函数执行并行计算\r\n4. **结果传输**：将计算结果从Device内存复制回Host内存\r\n5. **内存释放**：释放GPU内存\r\n\r\n### CUDA编译与运行\r\n\r\n1. CUDA代码需使用NVIDIA提供的NVCC编译器编译，而非普通C++编译器。\r\n\r\n```bash\r\nnvcc -o addcuda addcuda.cu\r\n.\u002Faddcuda\r\n```\r\n\r\n2. 编译架构\r\n- Host代码：使用普通C++编译器编译\r\n- Device代码：编译为特定GPU架构的二进制代码\r\n\r\n> **架构兼容性**：通过`-arch`和`-code`参数指定目标GPU架构，实现跨架构兼容。\r\n\r\n### 性能分析与优化\r\n\r\n1. 性能测试\r\n\r\n以向量加法为例，对比不同线程配置的性能：\r\n\r\n| 配置 | CPU时间(ms) | GPU时间(ms) | 加速比 |\r\n|------|-------------|-------------|--------|\r\n| 1线程 | 8.15 | 2680 | 0.003 |\r\n| 256线程 | 8.15 | 0.049 | 166 |\r\n| 满载线程 | 8.15 | 0.006 | 1358 |\r\n\r\n> **关键发现**：线程数增加显著提升性能，但核函数调用开销不可忽视。\r\n\r\n2. 优化策略：线程级循环\r\n\r\n将循环移入核函数内部，减少核函数调用次数：\r\n\r\n```cpp\r\n__global__ void addKernelLoop(float *a, float *b, float *c, int n, int step) {\r\n    int idx = blockIdx.x * blockDim.x + threadIdx.x;\r\n    for (int i = 0; i \u003C step; i++) {\r\n        if (idx + i \u003C n) {\r\n            c[idx + i] = a[idx + i] + b[idx + i];\r\n        }\r\n    }\r\n}\r\n```\r\n\r\n优化后性能显著提升：\r\n- 1线程配置：从2680ms降至69.58ms\r\n- 256线程配置：从0.049ms降至0.00688ms\r\n\r\n### CUDA调试工具：CUDA GDB\r\n\r\nCUDA GDB是NVIDIA提供的调试工具，支持对Host和Device代码的调试。\r\n\r\n1. 使用方法\r\n\r\n```bash\r\nnvcc -g -G -o vectoradd vectoradd.cu\r\ncuda-gdb vectoradd\r\n```\r\n\r\n2. 常用命令：\r\n- `run`：运行程序\r\n- `break`：设置断点\r\n- `next`\u002F`n`：执行下一行\r\n- `print`\u002F`p`：打印变量值\r\n- `info cuda threads`：查看CUDA线程信息\r\n\r\n### 结语\r\nCUDA作为GPU并行计算的主流框架，为深度学习、科学计算等领域提供了强大的计算能力。通过本课程的学习，你已掌握了CUDA编程的基础知识，包括线程组织、内存管理、核函数编写等核心概念。\r\n\r\n接下来，我们将深入探讨更高级的主题，如矩阵运算优化、内存访问优化、CUDA性能分析工具NCU等。这些内容将帮助你真正掌握CUDA编程，实现高效的并行计算。\r\n\r\n> **学习建议**：\r\n> 1. 从简单示例开始，逐步增加复杂度\r\n> 2. 重视性能分析，了解瓶颈所在\r\n> 3. 多动手实践，编写、编译、运行、调试\r\n\r\n\r\n\r\n\r\n后续课程将深入讲解大模型训练、推理与优化技术，包括模型微调、分布式训练、性能优化等高级主题。\r\n\r\n\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw6.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=epXM94790JRyVZK5KPiIf95EZZQ%3D)\r\n\r\n### 💡 学习贴士\r\n更多细节及完整课程内容，请观看直播或查看课程回放。\r\n\r\n链接：https:\u002F\u002Fwww.infinitensor.com\u002Fcamp\u002Fwinter2025\r\n\r\n\r\n### 📚 训练营报名持续进行中\r\n扫码报名与加入群聊，或点击 **「阅读原文」** 直达官网报名\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw7.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=T6W1BlHdoBa2bd0P%2B0OABUI5sTc%3D)",{"publishTime":7,"createTime":109,"canonicalPath":114,"id":115,"title":116},"\u002Fstudy-material\u002Fstudy-6","study-6","InfiniTensor冬季训练营编程基础课第六课《PyTorch入门》",102,"\u002Fstudy-material\u002Fstudy-7","study-7","markdown",{"publishTime":7,"createTime":109,"canonicalPath":122,"id":123,"title":124},"\u002Fstudy-material\u002Fstudy-8","study-8","InfiniTensor 冬季训练营推理引擎方向第一课《AI 模型导论与推理基础原理》",{"htmlContent":126,"headings":127},"\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_07_zw1.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=8XeysDn548GLJN03ayp5MsrGqbU%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>2026 年 1 月 12 日，2025 冬季 InfiniTensor 大模型与人工智能系统训练营 CUDA 编程方向第一节课《并行编程导论与 CUDA 入门》正式开讲。\u003C\u002Fp>\n\u003Cp>在深度学习、科学计算等高性能计算领域，&quot;并行&quot;已成为提升计算效率的关键技术。面对日益增长的数据量和计算需求，传统的串行编程已难以满足性能要求。本节课我们将从基础概念出发，带你了解并行编程的核心思想，并深入学习CUDA这一GPU并行计算的主流框架。本节课无需并行编程背景，但是有C++前置基础要求，有需要的同学可以在官网关注上周《编程基础课》系列课程回放。\u003C\u002Fp>\n\u003Ch3 id=\"串行-并发与并行-概念辨析\">\u003Ca class=\"anchor\" href=\"#串行-并发与并行-概念辨析\" aria-label=\"跳转到标题：串行、并发与并行：概念辨析\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>串行、并发与并行：概念辨析\u003C\u002Fh3>\u003Cp>\u003Cstrong>串行\u003C\u002Fstrong>：任务按顺序依次执行，一个任务完成后再执行下一个。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>并发\u003C\u002Fstrong>：多个任务交替执行，但同一时刻只有一个任务在运行。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>并行\u003C\u002Fstrong>：多个任务同时执行，同一时刻有多个任务在运行。\u003Cstrong>并行在同一个时间点上可以同时处理多个任务\u003C\u002Fstrong>，从而实现更高的吞吐量和效率。\u003C\u002Fp>\n\u003Ch3 id=\"cpu并行与gpu并行-硬件设计差异\">\u003Ca class=\"anchor\" href=\"#cpu并行与gpu并行-硬件设计差异\" aria-label=\"跳转到标题：CPU并行与GPU并行：硬件设计差异\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CPU并行与GPU并行：硬件设计差异\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. CPU：全能型战士\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>设计目标\u003C\u002Fstrong>：处理复杂逻辑和控制流\u003C\u002Fli>\n\u003Cli>\u003Cstrong>硬件特点\u003C\u002Fstrong>：少量复杂核心，复杂的控制单元，追求低延迟\u003C\u002Fli>\n\u003Cli>\u003Cstrong>典型应用\u003C\u002Fstrong>：操作系统、Web服务等需要复杂控制的场景\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>2. GPU：流水线工人\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>设计目标\u003C\u002Fstrong>：高效处理大规模数据并行计算\u003C\u002Fli>\n\u003Cli>\u003Cstrong>硬件特点\u003C\u002Fstrong>：大量简单核心，简单的控制单元，追求高吞吐\u003C\u002Fli>\n\u003Cli>\u003Cstrong>典型应用\u003C\u002Fstrong>：深度学习、图形渲染、科学计算等大规模数据并行场景\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>为什么选择GPU进行深度学习计算？\u003C\u002Fstrong>\u003Cbr>深度学习任务需要大量重复的矩阵运算，GPU的&quot;以量取胜&quot;特性使其成为理想选择，通过大量简单核心的并行工作，实现远超CPU的计算效率。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"cuda-统一计算设备架构\">\u003Ca class=\"anchor\" href=\"#cuda-统一计算设备架构\" aria-label=\"跳转到标题：CUDA：统一计算设备架构\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CUDA：统一计算设备架构\u003C\u002Fh3>\u003Cp>CUDA（Compute Unified Device Architecture）是NVIDIA开发的并行计算平台和编程模型，使开发者能在NVIDIA GPU上进行并行编程。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. CUDA的核心特点：\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>宿主语言\u003C\u002Fstrong>：C\u002FC++，降低学习门槛\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CPU与GPU协作\u003C\u002Fstrong>：CPU负责控制逻辑，GPU负责计算密集型任务\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SIMT模型\u003C\u002Fstrong>：Single Instruction Multiple Thread，一个指令被多个线程同时执行\u003C\u002Fli>\n\u003Cli>\u003Cstrong>自动调度\u003C\u002Fstrong>：通过参数设置，CUDA自动调度和优化GPU资源\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>2. CUDA编程模型：Host与Device\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Host（主机端）\u003C\u002Fstrong>：CPU端，运行主程序和控制逻辑\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Device（设备端）\u003C\u002Fstrong>：GPU端，执行计算密集型任务\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>3. 内存管理\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Host Memory\u003C\u002Fstrong>：CPU的主存（RAM）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Device Memory\u003C\u002Fstrong>：GPU的全局内存（Global Memory）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>数据在Host和Device之间的传输是CUDA编程的重要环节，需要通过特定API完成。\u003C\u002Fp>\n\u003Ch3 id=\"cuda线程层级结构\">\u003Ca class=\"anchor\" href=\"#cuda线程层级结构\" aria-label=\"跳转到标题：CUDA线程层级结构\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CUDA线程层级结构\u003C\u002Fh3>\u003Cp>CUDA采用三层结构组织线程：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Grid\u003C\u002Fstrong>：整个并行计算的最高层级，包含多个Block\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Block\u003C\u002Fstrong>：Grid的子集，包含多个Thread\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Thread\u003C\u002Fstrong>：最小的执行单元，每个Thread执行相同指令\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>线程唯一标识\u003C\u002Fstrong>：通过公式 \u003Ccode>blockIdx * blockDim + threadIdx\u003C\u002Fcode> 可计算任意线程的唯一索引\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"cuda核函数\">\u003Ca class=\"anchor\" href=\"#cuda核函数\" aria-label=\"跳转到标题：CUDA核函数\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CUDA核函数\u003C\u002Fh3>\u003Cp>核函数是CUDA中在GPU上执行的函数，需要使用\u003Ccode>__global__\u003C\u002Fcode>标识符标记。\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-cpp\">__global__ void addKernel(float *a, float *b, float *c, int n) {\n    int idx = blockIdx.x * blockDim.x + threadIdx.x;\n    if (idx &lt; n) {\n        c[idx] = a[idx] + b[idx];\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>关键点\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>核函数在GPU上执行\u003C\u002Fli>\n\u003Cli>通过线程索引\u003Ccode>idx\u003C\u002Fcode>确定每个线程处理的数据位置\u003C\u002Fli>\n\u003Cli>使用\u003Ccode>if\u003C\u002Fcode>语句确保线程索引不超过有效数据范围\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"cuda编程流程\">\u003Ca class=\"anchor\" href=\"#cuda编程流程\" aria-label=\"跳转到标题：CUDA编程流程\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CUDA编程流程\u003C\u002Fh3>\u003Col>\n\u003Cli>\u003Cstrong>Host端准备数据\u003C\u002Fstrong>：在CPU上初始化数据\u003C\u002Fli>\n\u003Cli>\u003Cstrong>数据传输\u003C\u002Fstrong>：将数据从Host内存复制到Device内存\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GPU计算\u003C\u002Fstrong>：调用核函数执行并行计算\u003C\u002Fli>\n\u003Cli>\u003Cstrong>结果传输\u003C\u002Fstrong>：将计算结果从Device内存复制回Host内存\u003C\u002Fli>\n\u003Cli>\u003Cstrong>内存释放\u003C\u002Fstrong>：释放GPU内存\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3 id=\"cuda编译与运行\">\u003Ca class=\"anchor\" href=\"#cuda编译与运行\" aria-label=\"跳转到标题：CUDA编译与运行\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CUDA编译与运行\u003C\u002Fh3>\u003Col>\n\u003Cli>CUDA代码需使用NVIDIA提供的NVCC编译器编译，而非普通C++编译器。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-bash\">nvcc -o addcuda addcuda.cu\n.\u002Faddcuda\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"2\">\n\u003Cli>编译架构\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cul>\n\u003Cli>Host代码：使用普通C++编译器编译\u003C\u002Fli>\n\u003Cli>Device代码：编译为特定GPU架构的二进制代码\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>架构兼容性\u003C\u002Fstrong>：通过\u003Ccode>-arch\u003C\u002Fcode>和\u003Ccode>-code\u003C\u002Fcode>参数指定目标GPU架构，实现跨架构兼容。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"性能分析与优化\">\u003Ca class=\"anchor\" href=\"#性能分析与优化\" aria-label=\"跳转到标题：性能分析与优化\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>性能分析与优化\u003C\u002Fh3>\u003Col>\n\u003Cli>性能测试\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>以向量加法为例，对比不同线程配置的性能：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>配置\u003C\u002Fth>\n\u003Cth>CPU时间(ms)\u003C\u002Fth>\n\u003Cth>GPU时间(ms)\u003C\u002Fth>\n\u003Cth>加速比\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>1线程\u003C\u002Ftd>\n\u003Ctd>8.15\u003C\u002Ftd>\n\u003Ctd>2680\u003C\u002Ftd>\n\u003Ctd>0.003\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>256线程\u003C\u002Ftd>\n\u003Ctd>8.15\u003C\u002Ftd>\n\u003Ctd>0.049\u003C\u002Ftd>\n\u003Ctd>166\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>满载线程\u003C\u002Ftd>\n\u003Ctd>8.15\u003C\u002Ftd>\n\u003Ctd>0.006\u003C\u002Ftd>\n\u003Ctd>1358\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>关键发现\u003C\u002Fstrong>：线程数增加显著提升性能，但核函数调用开销不可忽视。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Col start=\"2\">\n\u003Cli>优化策略：线程级循环\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>将循环移入核函数内部，减少核函数调用次数：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-cpp\">__global__ void addKernelLoop(float *a, float *b, float *c, int n, int step) {\n    int idx = blockIdx.x * blockDim.x + threadIdx.x;\n    for (int i = 0; i &lt; step; i++) {\n        if (idx + i &lt; n) {\n            c[idx + i] = a[idx + i] + b[idx + i];\n        }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>优化后性能显著提升：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>1线程配置：从2680ms降至69.58ms\u003C\u002Fli>\n\u003Cli>256线程配置：从0.049ms降至0.00688ms\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"cuda调试工具-cuda-gdb\">\u003Ca class=\"anchor\" href=\"#cuda调试工具-cuda-gdb\" aria-label=\"跳转到标题：CUDA调试工具：CUDA GDB\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>CUDA调试工具：CUDA GDB\u003C\u002Fh3>\u003Cp>CUDA GDB是NVIDIA提供的调试工具，支持对Host和Device代码的调试。\u003C\u002Fp>\n\u003Col>\n\u003Cli>使用方法\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-bash\">nvcc -g -G -o vectoradd vectoradd.cu\ncuda-gdb vectoradd\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"2\">\n\u003Cli>常用命令：\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cul>\n\u003Cli>\u003Ccode>run\u003C\u002Fcode>：运行程序\u003C\u002Fli>\n\u003Cli>\u003Ccode>break\u003C\u002Fcode>：设置断点\u003C\u002Fli>\n\u003Cli>\u003Ccode>next\u003C\u002Fcode>\u002F\u003Ccode>n\u003C\u002Fcode>：执行下一行\u003C\u002Fli>\n\u003Cli>\u003Ccode>print\u003C\u002Fcode>\u002F\u003Ccode>p\u003C\u002Fcode>：打印变量值\u003C\u002Fli>\n\u003Cli>\u003Ccode>info cuda threads\u003C\u002Fcode>：查看CUDA线程信息\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"结语\">\u003Ca class=\"anchor\" href=\"#结语\" aria-label=\"跳转到标题：结语\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>结语\u003C\u002Fh3>\u003Cp>CUDA作为GPU并行计算的主流框架，为深度学习、科学计算等领域提供了强大的计算能力。通过本课程的学习，你已掌握了CUDA编程的基础知识，包括线程组织、内存管理、核函数编写等核心概念。\u003C\u002Fp>\n\u003Cp>接下来，我们将深入探讨更高级的主题，如矩阵运算优化、内存访问优化、CUDA性能分析工具NCU等。这些内容将帮助你真正掌握CUDA编程，实现高效的并行计算。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>学习建议\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Col>\n\u003Cli>从简单示例开始，逐步增加复杂度\u003C\u002Fli>\n\u003Cli>重视性能分析，了解瓶颈所在\u003C\u002Fli>\n\u003Cli>多动手实践，编写、编译、运行、调试\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fblockquote>\n\u003Cp>后续课程将深入讲解大模型训练、推理与优化技术，包括模型微调、分布式训练、性能优化等高级主题。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw6.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=epXM94790JRyVZK5KPiIf95EZZQ%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"学习贴士\">\u003Ca class=\"anchor\" href=\"#学习贴士\" aria-label=\"跳转到标题：💡 学习贴士\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>💡 学习贴士\u003C\u002Fh3>\u003Cp>更多细节及完整课程内容，请观看直播或查看课程回放。\u003C\u002Fp>\n\u003Cp>链接：\u003Ca href=\"https:\u002F\u002Fwww.infinitensor.com\u002Fcamp\u002Fwinter2025\">https:\u002F\u002Fwww.infinitensor.com\u002Fcamp\u002Fwinter2025\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3 id=\"训练营报名持续进行中\">\u003Ca class=\"anchor\" href=\"#训练营报名持续进行中\" aria-label=\"跳转到标题：📚 训练营报名持续进行中\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>📚 训练营报名持续进行中\u003C\u002Fh3>\u003Cp>扫码报名与加入群聊，或点击 \u003Cstrong>「阅读原文」\u003C\u002Fstrong> 直达官网报名\u003Cbr>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw7.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=T6W1BlHdoBa2bd0P%2B0OABUI5sTc%3D\" alt=\"\">\u003C\u002Fp>\n",[128,131,134,137,140,143,146,149,151,154,156,159],{"id":129,"text":130,"level":9},"串行-并发与并行-概念辨析","串行、并发与并行：概念辨析",{"id":132,"text":133,"level":9},"cpu并行与gpu并行-硬件设计差异","CPU并行与GPU并行：硬件设计差异",{"id":135,"text":136,"level":9},"cuda-统一计算设备架构","CUDA：统一计算设备架构",{"id":138,"text":139,"level":9},"cuda线程层级结构","CUDA线程层级结构",{"id":141,"text":142,"level":9},"cuda核函数","CUDA核函数",{"id":144,"text":145,"level":9},"cuda编程流程","CUDA编程流程",{"id":147,"text":148,"level":9},"cuda编译与运行","CUDA编译与运行",{"id":150,"text":150,"level":9},"性能分析与优化",{"id":152,"text":153,"level":9},"cuda调试工具-cuda-gdb","CUDA调试工具：CUDA GDB",{"id":155,"text":155,"level":9},"结语",{"id":157,"text":158,"level":9},"学习贴士","💡 学习贴士",{"id":160,"text":161,"level":9},"训练营报名持续进行中","📚 训练营报名持续进行中"]