本项目为 2025 年夏季 InfiniTensor 大模型与人工智能系统训练营 CUDA 方向专业阶段的作业系统。
learning-CUDA/ ├── Makefile ├── README ├── src │ └── kernels.cu └── tester ├── tester.o └── utils.h
如果你使用的是训练营提供的服务器,则该步骤可直接跳过。
请确保系统已安装以下工具:
nvcc --version。make --version(大多数Linux/macOS已预装)。作业一共有两题。需实现 src/kernels.cu 中给定的 2 个 CUDA 函数 。
实现 CUDA 的 kthLargest 函数。给定一个连续的输入数组和非负数 k,返回该数组中第 k 大的数。该函数需支持 int 和 float 两种类型的输入。具体边界处理和一些条件可见文件中的注释。
实现 Flash Attention 算子。需支持 causal masking 和 GQA。具体行为与 torch.nn.functional.scaled_dot_product_attention 保持一致。接口未提供的参数所代表的功能无需支持和实现。具体参数要求请参考文件中的注释。该函数需支持 float。
在网站 InfiniTensor 开源社区 上提交 GitHub 链接,以最新提交为准。
代码编译与运行可以使用提供的 Makefile 十分简便的实现。
使用Makefile简化构建流程,以下命令需在项目根目录(即 Makefile 所在的目录)执行:
直接在命令行使用 make 指令编译代码并执行测试,输出简洁结果。
直接在命令行使用 make VERBOSE=true 指令编译代码并执行测试,输出包括执行时间在内的结果。
本次作业的评分标准如下:
正确性优先
性能加分
最终成绩
可以在群里直接询问助教!
Good luck and happy coding! 🚀