Skip to content

Commit 13a3210

Browse files
committed
feat.: add 2025 winter project
0 parents  commit 13a3210

File tree

9 files changed

+245
-0
lines changed

9 files changed

+245
-0
lines changed

03_nf4_dequant/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 简介
2+
3+
凭借你在 InfiniTensor 训练营的经历和人工智能与并行计算方面的出色成绩,你受雇于一家领先的 AI 大模型公司,负责为下一代对话系统开发高效的推理引擎。用户抱怨现有的聊天机器人响应速度太慢,无法支持流畅的实时交互——尤其是在消费级显卡上,大模型的显存占用导致批处理规模受限,吞吐量始终提不上去。
4+
5+
你发现问题的症结在于模型参数量过大。公司采用了 QLoRA 技术,将基座模型量化为 4-bit NF4 格式,显存占用降至原来的 1/4,理论上可以在单卡上运行更大的模型或更大的批次。然而,现有实现的解量化过程成了新的瓶颈:每个矩阵乘法前都需要将 4-bit 权重实时解压回 16-bit,这个操作拖慢了整体计算速度。
6+
7+
## 任务内容
8+
开发一个 CUDA 程序,实现单核的 NF4 解量化算子,将压缩后的 4-bit 权重实时解压为 16-bit 浮点(BF16 或 FP16)输出。
9+
10+
## 📬 有疑问?
11+
12+
更多详细信息和要求请参考本季度项目文档。
13+
14+
可以在项目群里直接询问导师和助教!
15+
16+
Good luck and happy coding! 🚀

04_hadamard_tc/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 简介
2+
3+
最新研究表明,在量化前对激活进行随机旋转(如 Hadamard 变换)可以有效抑制异常值,提升低比特量化精度——这是 QuaRot、SpinQuant、FlashAttention-3 等前沿工作的核心思想。然而,Hadamard 变换本身引入了额外计算开销,可能抵消量化带来的收益。
4+
5+
公司要求你实现一个利用 Tensor Core 加速的 Hadamard 变换核,将旋转开销降至最低,使得 FP8/INT4 量化在保持精度的同时真正加速。
6+
7+
## 任务内容
8+
实现一个基于 Tensor Core 的快速 Hadamard 变换核,支持多种输入尺寸,并与量化算子融合。
9+
10+
## 📬 有疑问?
11+
12+
更多详细信息和要求请参考本季度项目文档。
13+
14+
可以在项目群里直接询问导师和助教!
15+
16+
Good luck and happy coding! 🚀

05_seq_align/README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## 简介
2+
3+
鉴于你有 InfiniTensor 训练营的经历,并且在人工智能与并行计算方面的成绩出众,你被秘密邀请于京西航天港登上第一艘装备了我国曲速一引擎的 “寻星号” 科研探索船。登舰之后,舰长对你简单地讲述了任务并让你为之尽快做好准备。尽管舰长言辞隐晦并对你的诸多问题不予理睬,但你已然猜出此次任务与一百年前在 “播种计划” 中于太微左垣二星域失踪的 “蒲公英号” 有关。感受过曲速一引擎的伟力之后,你们成功到达了目标星域。
4+
5+
任务团队采集到了未知生物的 DNA 样本(实际可能由未知的碱基类似物组成,但为简化视为 A、T、C、G)。为了解该生物与地球生命的关联,需要将海量测序得到的未知 DNA 片段(reads)与已知的地球生物基因数据库以及此前发现的其他外星物种基因库进行比对。
6+
7+
然而,这些基因库异常庞大,且测序仪在行星表面每秒产生数百万条 reads。你需要利用星舰上的 GPU 计算集群开发一个超高速比对程序,实时处理从探测器传来的数据流,迅速定位每条 reads 在参考基因库中的最佳匹配位置,并标识出高度相似或完全未知的序列。无需多言,这项任务至关重要。
8+
9+
## 任务内容
10+
开发一个 CUDA 程序,能够将大量 reads 快速比对到参考基因组上。
11+
12+
## 📬 有疑问?
13+
14+
更多详细信息和要求请参考本季度项目文档。
15+
16+
可以在项目群里直接询问导师和助教!
17+
18+
Good luck and happy coding! 🚀

06_photon_sim/README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## 简介
2+
3+
鉴于你有 InfiniTensor 训练营的经历,并且在人工智能与并行计算方面的成绩出众,你被指定负责开发新一代移动式头部X射线成像系统,用于战场或灾害现场的快速颅脑损伤检测。系统需要在低剂量下快速成像,以发现颅内出血、骨折或异物。由于物理实验成本高且难以覆盖所有场景,你想到可以用某种方法模拟X射线光子穿过头部组织的传输过程,生成虚拟的X射线投影图像,用于优化成像参数和训练智能诊断算法。该系统将运行在便携式 GPU 工作站上,必须能够快速模拟大量光子,以支持实时参数调整。你的工作将为战地医生提供精准的影像支持,挽救更多生命。
4+
5+
## 任务内容
6+
开发一个 CUDA 程序,实现以下功能:
7+
1. 解析几何模型、物理参数和源参数,将数据加载到 GPU;
8+
2. 并行模拟每个光子的传输过程;
9+
3. 将最终像素数组传回主机,保存为图像文件;
10+
4. 测量性能并输出日志。
11+
12+
## 📬 有疑问?
13+
14+
更多详细信息和要求请参考本季度项目文档。
15+
16+
可以在项目群里直接询问导师和助教!
17+
18+
Good luck and happy coding! 🚀

07_trade_planning/README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## 简介
2+
3+
“天下熙熙皆为利来,天下攘攘皆为利往”。
4+
5+
泛星系贸易市场的成立使得无数星球之间通过超空间航道连接,每条航道有固定的货运容量(万吨/天)。凭借你 InfiniTensor 训练营的经历和人工智能与并行计算方面的出色成绩,你被晋升为泛星系贸易管理局的算法官,负责实时计算从资源富集星球(源)到需求中心(汇)的最大货物运输量,以规划贸易路线、避免拥堵。
6+
7+
泛星系贸易市场体量巨大,星球数量已达百万,航道数量千万,传统 CPU 无法满足实时查询需求。你需要开发并行最大流计算程序,以闪电般的速度响应各星区的物流请求。如果效果显著,你的程序将被部署于国家级 “星枢” 计算阵列,直接影响国家的贸易,甚至决定一场星际饥荒的存亡。
8+
9+
## 任务内容
10+
开发一个 CUDA 程序,实现并行最大流计算,处理单源单汇最大流,并输出规定的输出文件。
11+
12+
## 📬 有疑问?
13+
14+
更多详细信息和要求请参考本季度项目文档。
15+
16+
可以在项目群里直接询问导师和助教!
17+
18+
Good luck and happy coding! 🚀

08_bilateral_filter/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 简介
2+
3+
凭借你 InfiniTensor 训练营的经历和人工智能与并行计算方面的出色成绩,你受雇于一家领先的虚拟现实公司,负责为下一代 VR 头显开发实时图像增强模块。用户经常抱怨在弱光环境下看到的图像噪点严重,而现有降噪算法要么模糊细节,要么延迟太高导致眩晕。
4+
5+
你提出采用双边滤波算法,它能够在去除噪声的同时保持边缘清晰,非常适合VR图像处理。但双边滤波计算量极大,每个像素需要访问整个邻域并计算复杂的权重,难以在移动端实时运行。幸运的是,VR 头显内置了你知道的某单位生产的黑科技 GPU,你需要利用 CUDA 实现一个高度优化的双边滤波核,能够对 4K 分辨率、60 帧/秒的视频流进行实时处理。这将大幅提升用户的沉浸感和舒适度,为公司抢占市场提供核心技术。
6+
7+
## 任务内容
8+
开发一个 CUDA 程序,实现并行双边滤波。
9+
10+
## 📬 有疑问?
11+
12+
更多详细信息和要求请参考本季度项目文档。
13+
14+
可以在项目群里直接询问导师和助教!
15+
16+
Good luck and happy coding! 🚀

09_particle_sim/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## 简介
2+
3+
你是粒子对撞机项目的核心算法工程师,负责模拟粒子在加速器中的运动轨迹,以优化探测器布局和碰撞参数。对撞机每天产生海量粒子数据,但物理学家需要直观地看到粒子如何在磁场中偏转,以验证理论模型。
4+
5+
你的任务是开发一个 GPU 加速的粒子追踪模拟器,能够并行计算数千个带电粒子在复杂磁场中的轨迹,并输出数据供 Python 可视化。最终,你将提供一个交互式 3D 动画,展示粒子束的螺旋运动、偏转和碰撞过程,帮助科学家理解实验现象。该模拟器将成为 “星环” 项目的重要设计工具。
6+
7+
## 任务内容
8+
开发 CUDA 程序模拟粒子运动,并输出轨迹点供 Python 可视化。任务包括:
9+
1. 解析输入文件,将粒子初始状态拷贝到 GPU。
10+
2. 使用并行数值积分更新每个粒子的位置和速度。
11+
3. 按指定间隔记录粒子位置到全局数组。
12+
4. 将轨迹数据传输回主机,保存为文件。
13+
5. 提供 Python 脚本读取数据并生成动态 3D 轨迹图。
14+
15+
## 📬 有疑问?
16+
17+
更多详细信息和要求请参考本季度项目文档。
18+
19+
可以在项目群里直接询问导师和助教!
20+
21+
Good luck and happy coding! 🚀

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 InfiniTensor
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Learning-CUDA
2+
3+
本项目为 2025 年冬季 InfiniTensor 大模型与人工智能系统训练营 CUDA 方向专业阶段的作业与项目系统。
4+
5+
本页面为 2025 年冬季 InfiniTensor 大模型与人工智能系统训练营 CUDA 方向的项目仓库。
6+
7+
## 📁 项目结构
8+
9+
```text
10+
learning-CUDA/
11+
├── 03_nf4_dequant
12+
│ └── README.md
13+
├── 04_hadamard_tc
14+
│ └── README.md
15+
├── 05_seq_align
16+
│ └── README.md
17+
├── 06_photon_sim
18+
│ └── README.md
19+
├── 07_trade_planning
20+
│ └── README.md
21+
├── 08_bilateral_filter
22+
│ └── README.md
23+
├── 09_particle_sim
24+
│ └── README.md
25+
├── LICENSE
26+
└── README.md
27+
```
28+
29+
## 🧠 项目阶段信息和简介
30+
31+
### 关于项目阶段
32+
项目阶段相比较于课程阶段的作业会更加 **open-ended (开放式题目)**,不会像作业一样提供测例和标准答案。项目阶段的目标不仅仅是更全面的检验和提升学员对 CUDA 编程的掌握能力,同时还是更全面的检验包括问题分析、方案与系统设计、工具使用和文档能力在内的**综合能力**。能优秀完成项目阶段的学员能具备工业级的开发能力。因此项目阶段的评审会综合和全面的考察和评判。
33+
34+
### 项目选题是什么?
35+
项目阶段有多个选题,每个选题的方向和内容可能不尽相同,学员可以根据自己的兴趣进行选择。每位学员需**至少选择一个**选题且欢迎有兴趣和能力的同学同时完成多个选题。如果学员对选题有自己的想法,也欢迎与导师讨论。
36+
37+
### 项目阶段其他重要信息
38+
39+
- 项目阶段时间:2026.2.10 - 2026.3.16
40+
41+
- 项目提交方式:大部分选题与专业阶段作业相同,在官网提交 fork 仓库的链接与 commit 链接。具体提交方式各个选题可能有所不同,具体见项目选题要求。
42+
43+
### 注意事项
44+
1. 最终提交需整理代码:命名方式统一(不限定具体某种风格,全程序统一即可)、代码格式化(无具体某种格式要求,但可以默认使用默认配置的 clang-format)、无测试代码并且关键函数和代码块进行适当的注释。但与其他项目交叉的情况需遵循其他项目的规范;
45+
2. 取决于具体选题,大体上是以总体性能为评判标准,因此代码的某些功能在适宜的情况下可以在 CPU 上完成,但必须仍有较为显著的部分在 CUDA 上完成。总体性能需超越 CPU 同级别实现;
46+
3. 如有需要,可以使用合适的 CUDA 官方库。
47+
4. 如果选题的提交地址为 `Learning-CUDA` 仓库,则需要 fork `Learning-CUDA``project` 分支,并在其下对应的选题文件夹中放置自己的代码,即放置路径为 `project` 分支下 `/<选题>/<你的ID>/`。提交方式为 PR。E.g., ID 为 lzm 并且做了 path_finding 的选题,则提交的代码位于 project 分支下 `/path_finding/lzm/`.
48+
49+
需注意,各个选题的基础难度各不相同,在晋级评定时会有影响。同时,是否完成额外目标或进阶优化也会直接影响评定。
50+
51+
52+
## 🌳 环境配置
53+
54+
### > 英伟达(NVIDIA)
55+
56+
- 如果你使用的是训练营所提供的服务器,遵照英伟达算力文档中的步骤配置好环境即可。
57+
58+
- 如果为本地或其他环境,请确保系统已安装以下工具:
59+
60+
1. **CUDA Toolkit**(版本11.0及以上):
61+
- 验证安装:运行 `nvcc --version`
62+
- 安装:从[NVIDIA CUDA Toolkit下载页](https://developer.nvidia.com/cuda-downloads)获取。
63+
2. **GNU Make**
64+
- 验证安装:运行 `make --version`(大多数 Linux/macOS 已预装)。
65+
3. **C++ 版本**
66+
- 本次作业在英伟达上默认需支持 C++17
67+
68+
### > 天数智芯(Iluvatar CoreX)
69+
70+
- 如果你使用的是训练营所提供的服务器,遵照天数 BI-100 算力文档中的步骤配置好环境即可。
71+
72+
- 对于非训练营所提供的天数算力,请配置标准的天数 GPU 开放环境。本次作业在天数上默认需支持 C++17,且**本次作业的配置不保证能在所有其他天数环境上无修改直接运行**
73+
74+
### > 沐曦集成电路(MetaX)
75+
76+
- 如果你使用的是训练营所提供的服务器,遵照沐曦 (C500) 算力文档中的步骤配置好环境即可。
77+
- 镜像可以选择 PyTorch 的最新镜像,即 PyTorch 2.8.0, Python 3.1.2,maca 3.3.0.4
78+
79+
- 对于非训练营所提供的沐曦算力,请配置标准的沐曦 GPU 开放环境。本次作业在沐曦上默认需支持 C++17,且**本次作业的配置不保证能在所有其他沐曦环境上无修改直接运行**
80+
81+
### > 摩尔线程(Moore Threads)
82+
83+
- 如果你使用的是训练营所提供的服务器,请先遵照摩尔 (S5000) 算力文档中的步骤配置环境。
84+
85+
在此基础上,请确保在 `.bashrc` 中添加了以下环境变量:
86+
87+
```bash
88+
export MUSA_ROOT=/usr/local/musa
89+
export PATH="$MUSA_ROOT/bin:$PATH"
90+
export LD_LIBRARY_PATH="$MUSA_ROOT/lib:$LD_LIBRARY_PATH"
91+
export CPLUS_INCLUDE_PATH=/usr/include/c++/11:/usr/include/x86_64-linux-gnu/c++/11
92+
```
93+
94+
- 对于非训练营所提供的摩尔算力,请配置标准的摩尔 GPU 开放环境。本次作业在摩尔上默认需支持 C++11,且**本次作业的配置不保证能在所有其他摩尔环境上无修改直接运行**
95+
96+
97+
## 📬 有疑问?
98+
99+
如有任何疑问或不确定的地方,欢迎随时询问导师或助教!
100+
101+
Good luck and happy coding! 🚀

0 commit comments

Comments
 (0)