[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-BBuf--how-to-optim-algorithm-in-cuda":3,"tool-BBuf--how-to-optim-algorithm-in-cuda":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",145895,2,"2026-04-08T11:32:59",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":107,"forks":108,"last_commit_at":109,"license":79,"difficulty_score":110,"env_os":111,"env_gpu":112,"env_ram":113,"env_deps":114,"category_tags":123,"github_topics":124,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":127,"updated_at":128,"faqs":129,"releases":160},5575,"BBuf\u002Fhow-to-optim-algorithm-in-cuda","how-to-optim-algorithm-in-cuda","how to optimize some algorithm in cuda.","how-to-optim-algorithm-in-cuda 是一个专注于 CUDA 算法优化与 GPU 高性能计算的学习资源库。它旨在解决开发者在编写高效 GPU 代码时面临的性能瓶颈问题，通过提供经过验证的算子实现和系统化的学习笔记，帮助用户深入理解底层优化原理。\n\n该项目非常适合 AI 基础设施工程师、深度学习框架开发者以及希望提升 GPU 编程能力的研究人员使用。其核心内容涵盖了 Reduce、Softmax、GEMV 等基础算子的手写优化代码，并详细记录了从 Naive 实现到利用 OneFlow 模板、向量化及原子操作优化后的性能对比数据，直观展示带宽利用率的提升效果。\n\n独特的技术亮点在于其系统性的知识整理：不仅收录了由 PyTorch 核心开发者主讲的\"CUDA-MODE\"课程全套中文笔记与实验代码，还深入解析了 CUTLASS、CuTe DSL、Triton 等前沿工具链，以及大模型推理训练优化策略。无论是想动手实践具体的 Kernel 优化，还是希望系统构建 GPU 技术知识体系，这里都提供了丰富的代码示例、博客翻译和技术专题，是通往 GPU 高性能计算领域的实用指","how-to-optim-algorithm-in-cuda 是一个专注于 CUDA 算法优化与 GPU 高性能计算的学习资源库。它旨在解决开发者在编写高效 GPU 代码时面临的性能瓶颈问题，通过提供经过验证的算子实现和系统化的学习笔记，帮助用户深入理解底层优化原理。\n\n该项目非常适合 AI 基础设施工程师、深度学习框架开发者以及希望提升 GPU 编程能力的研究人员使用。其核心内容涵盖了 Reduce、Softmax、GEMV 等基础算子的手写优化代码，并详细记录了从 Naive 实现到利用 OneFlow 模板、向量化及原子操作优化后的性能对比数据，直观展示带宽利用率的提升效果。\n\n独特的技术亮点在于其系统性的知识整理：不仅收录了由 PyTorch 核心开发者主讲的\"CUDA-MODE\"课程全套中文笔记与实验代码，还深入解析了 CUTLASS、CuTe DSL、Triton 等前沿工具链，以及大模型推理训练优化策略。无论是想动手实践具体的 Kernel 优化，还是希望系统构建 GPU 技术知识体系，这里都提供了丰富的代码示例、博客翻译和技术专题，是通往 GPU 高性能计算领域的实用指南。","## how-to-optim-algorithm-in-cuda\n\n> 我也维护了一个学习深度学习框架（PyTorch和OneFlow）的仓库 https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-learn-deep-learning-framework 以及一个如何学习深度学习编译器（TVM\u002FMLIR\u002FLLVM）的学习仓库 https:\u002F\u002Fgithub.com\u002FBBuf\u002Ftvm_mlir_learn , 有需要的小伙伴可以**点一点star**\n\n本工程记录如何基于 CUDA 优化一些常见的算法，同时收录了大量 GPU\u002F大模型相关的学习笔记和博客翻译。\n\n> 友情链接：https:\u002F\u002Fgithub.com\u002FDefTruth\u002FCUDA-Learn-Notes\n\n## 目录结构\n\n```\nhow-to-optim-algorithm-in-cuda\u002F\n├── cuda-kernels\u002F          # 【代码】CUDA 基础算子手写优化实现\n│   ├── reduce\u002F\n│   ├── softmax\u002F\n│   ├── elementwise\u002F\n│   ├── gemv\u002F\n│   ├── fast-atomic-add\u002F\n│   ├── upsample-nearest2d\u002F\n│   ├── indexing\u002F\n│   └── linear-attention\u002F\n├── cuda-mode\u002F             # 【笔记+代码】CUDA-MODE 课程笔记（77+ 讲）\n│   ├── code\u002F              #   实验代码（YHs_Sample、cudabmk）\n│   ├── slides\u002F            #   课程讲义 PPT\u002FPDF\n│   ├── lectures\u002F          #   Lecture 1-77+ 笔记\n│   ├── blog-translations\u002F #   CUDA 博客翻译\n│   ├── cute-dsl\u002F          #   CuTe DSL 笔记\n│   ├── lei-mao-blogs\u002F     #   Lei Mao CUDA 博客转载\n│   ├── practice\u002F          #   课后实战\n│   └── tech-notes\u002F        #   GPU 技术专题\n├── cutlass\u002F               # 【笔记+代码】CUTLASS \u002F CuTe DSL 学习\n│   ├── code\u002F              #   代码（cfx-article-src、cute-examples、swizzle）\n│   ├── cute\u002F              #   CuTe Layout 笔记\n│   ├── gemm\u002F              #   GEMM 实现解析\n│   ├── tma\u002F               #   TMA 教程\n│   ├── wgmma\u002F             #   WGMMA 教程\n│   ├── swizzle\u002F           #   Swizzle 机制笔记\n│   ├── instructions\u002F      #   CUDA 指令笔记\n│   └── tutorials\u002F         #   CUTLASS 翻译教程\n├── triton\u002F                # 【笔记+代码】Triton 学习\n│   ├── code\u002F              #   Python 代码实现\n│   └── meetup\u002F            #   Triton 中国 Meetup slides\n├── large-language-model\u002F  # 【笔记】大模型推理\u002F训练优化笔记\n├── ml-engineering\u002F        # 【笔记】ml-engineering 翻译系列\n├── pytorch\u002F               # 【笔记+代码】PyTorch 博客翻译与代码\n├── papers\u002F                # 【笔记】论文阅读\n│   ├── cuda\u002F\n│   └── mlsys\u002F\n├── ptx-isa\u002F               # 【笔记+文档】PTX ISA 学习\n├── tools\u002F                 # 工具脚本（hfd.sh 等）\n└── deprecated\u002F            # 归档：过时\u002F低相关内容\n```\n\n---\n\n### 0. **cuda-mode**\n\n- 课程的 Slides 和 脚本：https:\u002F\u002Fgithub.com\u002Fcuda-mode\u002Flectures\n- 课程地址：https:\u002F\u002Fwww.youtube.com\u002F@CUDAMODE\n- 我的课程笔记：https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Ftree\u002Fmaster\u002Fcuda-mode\n\n一直想系统看一下某个课程系统和科学的学习下 CUDA ，感觉 CUDA-MODE 这个课程能满足我的需求。这个课程是几个 PyTorch 的 Core Dev 搞的，比较系统和专业。不过由于这个课程是 Youtube 上的英语课程，所以要学习和理解这个课程还是需要花不少时间的，我这里记录一下学习这个课程的每一课的笔记，希望可以通过这个笔记帮助对这个课程以及 CUDA 感兴趣的读者更快吸收这个课程的知识。这个课程相比于以前的纯教程更加关注的是我们可以利用 CUDA 做什么事情，而不是让读者陷入到 CUDA 专业术语的细节中，那会非常痛苦。伟大无需多言，感兴趣请阅读本文件夹下的各个课程的学习笔记。\n\n### 1. cuda-kernels（CUDA 基础算子）\n\n各基础算子的 CUDA 优化实现，代码位于 [cuda-kernels\u002F](cuda-kernels\u002F) 目录。\n\n### 2. reduce\n\n这里记录学习 NIVDIA 的[reduce优化官方博客](https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fassets\u002Fcuda\u002Ffiles\u002Freduction.pdf) 做的笔记。完整实验代码见[这里](https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Ftree\u002Fmaster\u002Fcuda-kernels\u002Freduce) , 原理讲解请看：[【BBuf的CUDA笔记】三，reduce优化入门学习笔记](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F596012674) 。后续又添加了 PyTorch BlockReduce 模板以及在这个模板的基础上额外加了一个数据 Pack ,又获得了一些带宽的提升。详细数据如下：\n\n性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n![图片](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_c2d36746c424.png)\n\n### 3. elementwise\n\n将 oneflow 的 elementwise 模板抽出来方便大家使用，这个 elementwise 模板实现了高效的性能和带宽利用率，并且用法非常灵活。完整实验代码见[这里](https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Felementwise\u002Felementwise.cu) ，原理讲解请看：[【BBuf 的CUDA笔记】一，解析OneFlow Element-Wise 算子实现](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F591058808) 。这里以逐点乘为例，性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n|优化手段|数据类型|耗时(us)|带宽利用率|\n|--|--|--|--|\n|naive elementwise|float|298.46us|85.88%|\n|oneflow elementwise|float|284us|89.42%|\n|naive elementwise|half|237.28us|52.55%|\n|oneflow elementwise|half|140.74us|87.31%|\n\n可以看到无论是性能还是带宽，使用 oneflow 的 elementwise 模板相比于原始实现都有较大提升。\n\n### 4. FastAtomicAdd\n\n实现的脚本是针对half数据类型做向量的内积，用到了atomicAdd，保证数据的长度以及gridsize和blocksize都是完全一致的。一共实现了3个脚本：\n\n1. https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Ffast-atomic-add\u002Fatomic_add_half.cu 纯half类型的atomicAdd。\n2. https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Ffast-atomic-add\u002Fatomic_add_half_pack2.cu half+pack，最终使用的是half2类型的atomicAdd。\n3. https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Ffast-atomic-add\u002Ffast_atomic_add_half.cu 快速原子加，虽然没有显示的pack，但本质上也是通过对单个half补0使用上了half2的原子加。\n\n性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n|原子加方式|性能(us)|\n|--|--|\n|纯half类型|422.36ms|\n|pack half2类型|137.02ms|\n|fastAtomicAdd|137.01ms|\n\n可以看到使用pack half的方式和直接使用half的fastAtomicAdd方式得到的性能结果一致，均比原始的half的原子加快3-4倍。\n\n### 5. UpsampleNearest2D\n\nupsample_nearest_2d.cu 展示了 oneflow 对 upsample_nearest2d 的前后向的优化 kernel 的用法，性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n|框架|数据类型|Op类型|带宽利用率|耗时|\n|--|--|--|--|--|\n| PyTorch | Float32 | UpsampleNearest2D forward | 28.30% | 111.42us |\n| PyTorch | Float32 | UpsampleNearest2D backward | 60.16% | 65.12us |\n| OneFlow | Float32 |UpsampleNearest2D forward | 52.18% | 61.44us |\n| OneFlow | Float32 |UpsampleNearest2D backward | 77.66% | 50.56us |\n| PyTorch | Float16 | UpsampleNearest2D forward | 16.99% | 100.38us |\n| PyTorch | Float16 | UpsampleNearest2D backward | 31.56% | 57.38us |\n| OneFlow | Float16 |UpsampleNearest2D forward | 43.26% | 35.36us |\n| OneFlow | Float16 |UpsampleNearest2D backward | 44.82% | 40.26us |\n\n可以看到基于 oneflow upsample_nearest2d 的前后向的优化 kernel 可以获得更好的带宽利用率和性能。注意这里的 profile 使用的是 oneflow 脚本，而不是 upsample_nearest_2d.cu ，详情请看 [cuda-kernels\u002Fupsample-nearest2d\u002FREADME.md](cuda-kernels\u002Fupsample-nearest2d\u002FREADME.md) 。\n\n\n### 6. indexing\n\n在 PyTorch 中对 index_add 做了极致的优化，我这里将 [PyTorch 的 index_add 实现](cuda-kernels\u002Findexing\u002Findex_add_cuda_pytorch_impl.cu) 进行了剥离，方便大家应用于其它框架。具体请看 indexing 文件夹的 README 。其中还有和 oneflow 的 index_add 实现的各个 case 的性能比较结果。整体来说 PyTorch 在 index Tensor元素很小，但Tensor很大的情况下有较大的性能提升，其它情况和 OneFlow 基本持平。详情请看 [cuda-kernels\u002Findexing\u002FREADME.md](cuda-kernels\u002Findexing\u002FREADME.md) 。\n\n### 7. softmax\n\n学习了oneflow的softmax kernel实现以及Faster Transformer softmax kernel的实现，并以个人的角度分别解析了原理和代码实现，最后对性能做一个对比方便大家直观的感受到oneflow softmax kernel相比于FasterTransformer的优越性。代码位于 [cuda-kernels\u002Fsoftmax\u002F](cuda-kernels\u002Fsoftmax\u002F)。\n\n### 8. linear-attention\n\n学习一些 linear attention 的 cuda 优化技巧。代码位于 [cuda-kernels\u002Flinear-attention\u002F](cuda-kernels\u002Flinear-attention\u002F)。\n\n![图片](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_de9e0c133e52.png)\n\n### 9. large-language-model\n\n收集了和大语言模型原理，训练，推理优化相关的文章和学习笔记，位于 [large-language-model\u002F](large-language-model\u002F)。\n\n### 10. papers\n\nGPU \u002F AI 系统论文阅读笔记，位于 [papers\u002F](papers\u002F)，分为：\n- [papers\u002Fcuda\u002F](papers\u002Fcuda\u002F)：CUDA 体系结构相关论文\n- [papers\u002Fmlsys\u002F](papers\u002Fmlsys\u002F)：ML 系统（分布式训练、推理）相关论文\n\n### 11. triton\n\nTriton 学习过程中的代码记录和学习笔记，位于 [triton\u002F](triton\u002F)，分为：\n- [triton\u002Fcode\u002F](triton\u002Fcode\u002F)：Flash Attention、LayerNorm 等 Triton \u002F PyTorch 实现\n- [triton\u002Fmeetup\u002F](triton\u002Fmeetup\u002F)：Triton 中国 Meetup slides 汇总\n\n### 12. ptx-isa\n\n对 CUDA PTX ISA 文档的翻译和学习，位于 [ptx-isa\u002F](ptx-isa\u002F)。\n\n### 13. pytorch\n\n对 PyTorch 团队发布的 CUDA 技术的学习笔记和博客翻译，位于 [pytorch\u002F](pytorch\u002F)。\n\n### 14. cutlass\n\nCUTLASS \u002F CuTe DSL 相关的学习笔记，位于 [cutlass\u002F](cutlass\u002F)。\n\n\n## 学习资源\n\nBBuf 公众号笔记文章列表以及 CUDA\u002F大模型 Infra 优质博客资源汇总，见 [RESOURCES.md](RESOURCES.md)。\n\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#BBuf\u002Fhow-to-optim-algorithm-in-cuda&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_3c2b2494649d.png&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_3c2b2494649d.png\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_3c2b2494649d.png\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>","## 如何在 CUDA 中优化算法\n\n> 我还维护了一个学习深度学习框架（PyTorch和OneFlow）的仓库 https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-learn-deep-learning-framework 以及一个如何学习深度学习编译器（TVM\u002FMLIR\u002FLLVM）的学习仓库 https:\u002F\u002Fgithub.com\u002FBBuf\u002Ftvm_mlir_learn , 有需要的小伙伴可以**点一点star**\n\n本工程记录如何基于 CUDA 优化一些常见的算法，同时收录了大量 GPU\u002F大模型相关的学习笔记和博客翻译。\n\n> 友情链接：https:\u002F\u002Fgithub.com\u002FDefTruth\u002FCUDA-Learn-Notes\n\n## 目录结构\n\n```\nhow-to-optim-algorithm-in-cuda\u002F\n├── cuda-kernels\u002F          # 【代码】CUDA 基础算子手写优化实现\n│   ├── reduce\u002F\n│   ├── softmax\u002F\n│   ├── elementwise\u002F\n│   ├── gemv\u002F\n│   ├── fast-atomic-add\u002F\n│   ├── upsample-nearest2d\u002F\n│   ├── indexing\u002F\n│   └── linear-attention\u002F\n├── cuda-mode\u002F             # 【笔记+代码】CUDA-MODE 课程笔记（77+ 讲）\n│   ├── code\u002F              #   实验代码（YHs_Sample、cudabmk）\n│   ├── slides\u002F            #   课程讲义 PPT\u002FPDF\n│   ├── lectures\u002F          #   Lecture 1-77+ 笔记\n│   ├── blog-translations\u002F #   CUDA 博客翻译\n│   ├── cute-dsl\u002F          #   CuTe DSL 笔记\n│   ├── lei-mao-blogs\u002F     #   Lei Mao CUDA 博客转载\n│   ├── practice\u002F          #   课后实战\n│   └── tech-notes\u002F        #   GPU 技术专题\n├── cutlass\u002F               # 【笔记+代码】CUTLASS \u002F CuTe DSL 学习\n│   ├── code\u002F              #   代码（cfx-article-src、cute-examples、swizzle）\n│   ├── cute\u002F              #   CuTe Layout 笔记\n│   ├── gemm\u002F              #   GEMM 实现解析\n│   ├── tma\u002F               #   TMA 教程\n│   ├── wgmma\u002F             #   WGMMA 教程\n│   ├── swizzle\u002F           #   Swizzle 机制笔记\n│   ├── instructions\u002F      #   CUDA 指令笔记\n│   └── tutorials\u002F         #   CUTLASS 翻译教程\n├── triton\u002F                # 【笔记+代码】Triton 学习\n│   ├── code\u002F              #   Python 代码实现\n│   └── meetup\u002F            #   Triton 中国 Meetup slides\n├── large-language-model\u002F  # 【笔记】大模型推理\u002F训练优化笔记\n├── ml-engineering\u002F        # 【笔记】ml-engineering 翻译系列\n├── pytorch\u002F               # 【笔记+代码】PyTorch 博客翻译与代码\n├── papers\u002F                # 【笔记】论文阅读\n│   ├── cuda\u002F\n│   └── mlsys\u002F\n├── ptx-isa\u002F               # 【笔记+文档】PTX ISA 学习\n├── tools\u002F                 # 工具脚本（hfd.sh 等）\n└── deprecated\u002F            # 归档：过时\u002F低相关内容\n```\n\n---\n\n### 0. **cuda-mode**\n\n- 课程的 Slides 和 脚本：https:\u002F\u002Fgithub.com\u002Fcuda-mode\u002Flectures\n- 课程地址：https:\u002F\u002Fwww.youtube.com\u002F@CUDAMODE\n- 我的课程笔记：https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Ftree\u002Fmaster\u002Fcuda-mode\n\n一直想系统看一下某个课程系统和科学的学习下 CUDA ，感觉 CUDA-MODE 这个课程能满足我的需求。这个课程是几个 PyTorch 的 Core Dev 搞的，比较系统和专业。不过由于这个课程是 Youtube 上的英语课程，所以要学习和理解这个课程还是需要花不少时间的，我这里记录一下学习这个课程的每一课的笔记，希望可以通过这个笔记帮助对这个课程以及 CUDA 感兴趣的读者更快吸收这个课程的知识。这个课程相比于以前的纯教程更加关注的是我们可以利用 CUDA 做什么事情，而不是让读者陷入到 CUDA 专业术语的细节中，那会非常痛苦。伟大无需多言，感兴趣请阅读本文件夹下的各个课程的学习笔记。\n\n### 1. cuda-kernels（CUDA 基础算子）\n\n各基础算子的 CUDA 优化实现，代码位于 [cuda-kernels\u002F](cuda-kernels\u002F) 目录。\n\n### 2. reduce\n\n这里记录学习 NIVDIA 的[reduce优化官方博客](https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fassets\u002Fcuda\u002Ffiles\u002Freduction.pdf) 做的笔记。完整实验代码见[这里](https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Ftree\u002Fmaster\u002Fcuda-kernels\u002Freduce) , 原理讲解请看：[【BBuf的CUDA笔记】三，reduce优化入门学习笔记](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F596012674) 。后续又添加了 PyTorch BlockReduce 模板以及在这个模板的基础上额外加了一个数据 Pack ,又获得了一些带宽的提升。详细数据如下：\n\n性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n![图片](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_c2d36746c424.png)\n\n### 3. elementwise\n\n将 oneflow 的 elementwise 模テン抽出来方便大家使用，这个 elementwise 模テン实现了高效的性能和带宽利用率，并且用法非常灵活。完整实验代码见[这里](https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Felementwise\u002Felementwise.cu) ，原理讲解请看：[【BBuf 的CUDA笔记】一，解析OneFlow Element-Wise 算子实现](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F591058808) 。这里以逐点乘为例，性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n|优化手段|数据类型|耗时(us)|带宽利用率|\n|--|--|--|--|\n|naive elementwise|float|298.46us|85.88%|\n|oneflow elementwise|float|284us|89.42%|\n|naive elementwise|half|237.28us|52.55%|\n|oneflow elementwise|half|140.74us|87.31%|\n\n可以看到无论是性能还是带宽，使用 oneflow 的 elementwise 模テン相比于原始实现都有较大提升。\n\n### 4. FastAtomicAdd\n\n实现的脚本是针对half数据类型做向量的内积，用到了atomicAdd，保证数据的长度以及gridsize和blocksize都是完全一致的。一共实现了3个脚本：\n\n1. https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Ffast-atomic-add\u002Fatomic_add_half.cu 纯half类型的atomicAdd。\n2. https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Ffast-atomic-add\u002Fatomic_add_half_pack2.cu half+pack，最终使用的是half2类型的atomicAdd。\n3. https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fblob\u002Fmaster\u002Fcuda-kernels\u002Ffast-atomic-add\u002Ffast_atomic_add_half.cu 快速原子加，虽然没有显示的pack，但本质上也是通过对单个half补0使用上了half2的原子加。\n\n性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n|原子加方式|性能(us)|\n|--|--|\n|纯half类型|422.36ms|\n|pack half2类型|137.02ms|\n|fastAtomicAdd|137.01ms|\n\n可以看到使用pack half的方式和直接使用half的fastAtomicAdd方式得到的性能结果一致，均比原始的half的原子加快3-4倍。\n\n### 5. UpsampleNearest2D\n\nupsample_nearest_2d.cu 展示了 oneflow 对 upsample_nearest2d 的前后向的优化 kernel 的用法，性能和带宽的测试情况如下 (A100 PCIE 40G)：\n\n|框架|数据类型|Op类型|带宽利用率|耗时|\n|--|--|--|--|--|\n| PyTorch | Float32 | UpsampleNearest2D forward | 28.30% | 111.42us |\n| PyTorch | Float32 | UpsampleNearest2D backward | 60.16% | 65.12us |\n| OneFlow | Float32 |UpsampleNearest2D forward | 52.18% | 61.44us |\n| OneFlow | Float32 |UpsampleNearest2D backward | 77.66% | 50.56us |\n| PyTorch | Float16 | UpsampleNearest2D forward | 16.99% | 100.38us |\n| PyTorch | Float16 | UpsampleNearest2D backward | 31.56% | 57.38us |\n| OneFlow | Float16 |UpsampleNearest2D forward | 43.26% | 35.36us |\n| OneFlow | Float16 |UpsampleNearest2D backward | 44.82% | 40.26us |\n\n可以看到基于 oneflow upsample_nearest2d 的前后向的优化 kernel 可以获得更好的带宽利用率和性能。注意这里的 profile 使用的是 oneflow 脚本，而不是 upsample_nearest_2d.cu ，详情请看 [cuda-kernels\u002Fupsample-nearest2d\u002FREADME.md](cuda-kernels\u002Fupsample-nearest2d\u002FREADME.md) 。\n\n\n### 6. indexing\n\n在 PyTorch 中对 index_add 做了极致的优化，我这里将 [PyTorch 的 index_add 实现](cuda-kernels\u002Findexing\u002Findex_add_cuda_pytorch_impl.cu) 进行了剥离，方便大家应用于其它框架。具体请看 indexing 文件夹的 README 。其中还有和 oneflow 的 index_add 实现的各个 case 的性能比较结果。整体来说 PyTorch 在 index Tensor元素很小，但Tensor很大的情况下有较大的性能提升，其它情况和 OneFlow 基本持平。详情请看 [cuda-kernels\u002Findexing\u002FREADME.md](cuda-kernels\u002Findexing\u002FREADME.md) 。\n\n### 7. softmax\n\n学习了oneflow的softmax kernel实现以及Faster Transformer softmax kernel的实现，并以个人的角度分别解析了原理和代码实现，最后对性能做一个对比方便大家直观的感受到oneflow softmax kernel相比于FasterTransformer的优越性。代码位于 [cuda-kernels\u002Fsoftmax\u002F](cuda-kernels\u002Fsoftmax\u002F)。\n\n### 8. linear-attention\n\n学习一些 linear attention 的 cuda 优化技巧。代码位于 [cuda-kernels\u002Flinear-attention\u002F](cuda-kernels\u002Flinear-attention\u002F)。\n\n![图片](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_de9e0c133e52.png)\n\n### 9. large-language-model\n\n收集了和大语言模型原理，训练，推理优化相关的文章和学习笔记，位于 [large-language-model\u002F](large-language-model\u002F)。\n\n### 10. papers\n\nGPU \u002F AI 系统论文阅读笔记，位于 [papers\u002F](papers\u002F)，分为：\n- [papers\u002Fcuda\u002F](papers\u002Fcuda\u002F)：CUDA 体系结构相关论文\n- [papers\u002Fmlsys\u002F](papers\u002Fmlsys\u002F)：ML 系统（分布式训练、推理）相关论文\n\n### 11. triton\n\nTriton 学习过程中的代码记录和学习笔记，位于 [triton\u002F](triton\u002F)，分为：\n- [triton\u002Fcode\u002F](triton\u002Fcode\u002F)：Flash Attention、LayerNorm 等 Triton \u002F PyTorch 实现\n- [triton\u002Fmeetup\u002F](triton\u002Fmeetup\u002F)：Triton 中国 Meetup slides 汇总\n\n### 12. ptx-isa\n\n对 CUDA PTX ISA 文档的翻译和学习，位于 [ptx-isa\u002F](ptx-isa\u002F)。\n\n### 13. pytorch\n\n对 PyTorch 团队发布的 CUDA 技术的学习笔记和博客翻译，位于 [pytorch\u002F](pytorch\u002F)。\n\n### 14. cutlass\n\nCUTLASS \u002F CuTe DSL 相关的学习笔记，位于 [cutlass\u002F](cutlass\u002F)。\n\n## 学习资源\n\nBBuf 公众号的笔记文章列表以及 CUDA\u002F大模型基础设施领域的优质博客资源汇总，请参阅 [RESOURCES.md](RESOURCES.md)。\n\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#BBuf\u002Fhow-to-optim-algorithm-in-cuda&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_3c2b2494649d.png&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_3c2b2494649d.png\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_readme_3c2b2494649d.png\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>","# how-to-optim-algorithm-in-cuda 快速上手指南\n\n本仓库汇集了基于 CUDA 优化常见算法的代码实现、大模型推理\u002F训练优化笔记以及 CUDA-MODE\u002FCUTLASS\u002FTriton 等前沿技术的学习资料。适合希望深入理解 GPU 底层优化、算子手写及大模型 Infra 的开发者。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04\u002F22.04)\n*   **GPU**: NVIDIA GPU (推荐 Ampere 架构及以上，如 A100, RTX 3090\u002F4090，以体验最佳性能优化效果)\n*   **CUDA Toolkit**: 版本 >= 11.0 (部分新特性如 TMA\u002FWGMMA 可能需要 CUDA 12.0+)\n*   **编译器**: GCC\u002FG++ (版本需与安装的 CUDA Toolkit 兼容)\n*   **构建工具**: CMake (>= 3.18), Make\n*   **可选依赖**:\n    *   Python 3.8+ (用于 Triton 示例及部分脚本)\n    *   PyTorch (用于对比测试及参考实现)\n    *   OneFlow (部分算子参考了其实现)\n\n## 安装步骤\n\n本项目主要包含源代码和学习笔记，无需复杂的包安装，只需克隆仓库并配置编译环境即可。\n\n1.  **克隆仓库**\n    使用 git 克隆项目到本地：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda.git\n    cd how-to-optim-algorithm-in-cuda\n    ```\n    *(国内用户若下载缓慢，可使用镜像加速：`git clone https:\u002F\u002Fghproxy.com\u002Fhttps:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda.git`)*\n\n2.  **验证环境**\n    检查 CUDA 编译器是否可用：\n    ```bash\n    nvcc --version\n    ```\n\n3.  **编译示例代码 (以 cuda-kernels 为例)**\n    进入具体的算子目录（例如 `reduce`），通常包含 `CMakeLists.txt` 或 `Makefile`。以 `reduce` 为例：\n    ```bash\n    cd cuda-kernels\u002Freduce\n    mkdir build && cd build\n    cmake ..\n    make\n    ```\n    *注：不同子目录的编译方式可能略有差异，请参考各子目录下的 `README.md`。*\n\n4.  **安装 Triton 依赖 (如需运行 Triton 示例)**\n    ```bash\n    pip install triton\n    # 国内用户推荐使用清华源加速\n    # pip install triton -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n## 基本使用\n\n本仓库的核心价值在于阅读源码和理解优化思路。以下是几个典型的使用场景：\n\n### 1. 运行基础算子优化测试 (Reduce)\n编译完成后，在 `build` 目录下运行生成的可执行文件，观察不同优化策略（如共享内存、向量化加载）对带宽利用率的影响：\n```bash\n.\u002Freduce_benchmark\n```\n*参考文档：查看 `cuda-kernels\u002Freduce` 目录下的代码及知乎专栏文章了解优化原理。*\n\n### 2. 学习 CUDA-MODE 课程笔记\n进入 `cuda-mode` 目录，这里整理了 77+ 讲的课程笔记、PPT 和实验代码。\n```bash\ncd ..\u002Fcuda-mode\u002Flectures\n# 阅读 Lecture 1 的笔记\ncat Lecture-01.md\n# 运行对应的实验代码\ncd ..\u002Fcode\u002FYHs_Sample\n# (根据具体实验的 README 进行编译运行)\n```\n\n### 3. 运行 Triton 算子示例\n在 `triton\u002Fcode` 目录下，可以直接运行 Python 脚本来体验 Triton 编写的高效算子（如 Flash Attention, LayerNorm）：\n```bash\ncd ..\u002Ftriton\u002Fcode\npython flash_attention_triton.py\n```\n\n### 4. 查阅 CUTLASS 与 CuTe DSL\n若想学习新一代 GEMM 优化技术，可前往 `cutlass` 目录：\n```bash\ncd ..\u002Fcutlass\u002Fcute\n# 阅读 CuTe Layout 笔记\ncat layout_notes.md\n# 查看 swizzle 机制示例\ncd ..\u002Fswizzle\n```\n\n> **提示**：每个子目录（如 `softmax`, `elementwise`, `linear-attention`）均包含独立的 `README.md` 或代码注释，详细解释了该算子的优化技巧、性能对比数据（基于 A100 等显卡）及实现原理，建议结合代码对照阅读。","某深度学习框架研发团队正在为新款大模型定制高性能推理引擎，急需手动优化关键的自定义算子以突破现有库的性能瓶颈。\n\n### 没有 how-to-optim-algorithm-in-cuda 时\n- **重复造轮子效率低**：团队需从零编写 Reduce、Softmax 等基础算子的 CUDA 内核，缺乏成熟的模板参考，开发周期长达数周。\n- **性能调优无头绪**：面对 A100 等新架构，开发者难以掌握 Shared Memory 银行冲突避免、向量化加载等高级技巧，导致带宽利用率仅停留在 50%-60%。\n- **学习资料碎片化**：网上关于 CUTLASS、Triton 及 PTX 指令的文档分散且多为英文，缺乏系统性的中文笔记与代码对照，学习曲线极其陡峭。\n- **原子操作成为瓶颈**：在处理 Half 精度累加时，直接使用原生 `atomicAdd` 导致严重的串行竞争，无法发挥 GPU 并行优势。\n\n### 使用 how-to-optim-algorithm-in-cuda 后\n- **直接复用成熟模板**：团队直接调用仓库中经过验证的 OneFlow Elementwise 和 BlockReduce 模板，将算子开发时间从数周缩短至几天。\n- **性能显著提升**：参考仓库中的优化策略（如数据 Pack 和内存合并访问），在 A100 上将 Half 精度算子的带宽利用率从 52% 提升至 87% 以上，耗时降低近 40%。\n- **系统化知识赋能**：借助整理的 CUDA-MODE 课程笔记、CUTLASS 教程及中文博客翻译，团队成员快速掌握了 TMA、WGMMA 等前沿技术，降低了学习门槛。\n- **解决特定硬件痛点**：利用仓库提供的 `fast-atomic-add` 实现方案，巧妙规避了 Half 精度原子加法的性能陷阱，确保了大规模并行计算下的数据一致性与高吞吐。\n\n该工具通过提供“开箱即用”的高性能算子代码与系统化的底层优化知识，帮助开发者大幅缩短了从算法原型到生产级高性能 CUDA 代码的落地路径。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBBuf_how-to-optim-algorithm-in-cuda_c2d36746.png","BBuf","Xiaoyu Zhang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FBBuf_6593cb05.jpg","Working at Skywork.AI and the creator of GiantPandaCV official account.","SkyWork","ChengDu",null,"www.giantpandacv.com","https:\u002F\u002Fgithub.com\u002FBBuf",[83,87,91,95,99,103],{"name":84,"color":85,"percentage":86},"Cuda","#3A4E3A",59,{"name":88,"color":89,"percentage":90},"Python","#3572A5",26,{"name":92,"color":93,"percentage":94},"C++","#f34b7d",13.7,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.8,{"name":100,"color":101,"percentage":102},"Makefile","#427819",0.4,{"name":104,"color":105,"percentage":106},"CMake","#DA3434",0,2910,267,"2026-04-08T05:18:21",4,"Linux","必需 NVIDIA GPU。README 中性能测试基于 A100 PCIE 40G，代码涉及 CUDA Kernel 手写优化、CUTLASS、Triton 等，通常需要支持较新架构（如 Ampere 及以上）以运行 TMA\u002FWGMMA 等新特性。","未说明",{"notes":115,"python":116,"dependencies":117},"该项目主要是一个包含 CUDA 算子优化代码（.cu 文件）、学习笔记和博客翻译的仓库，而非一个直接安装的 Python 包。大部分底层算子代码需要使用 nvcc 编译器进行编译。部分模块（如 Triton、PyTorch 绑定）需要对应的深度学习框架环境。建议具备 CUDA 编程基础，并根据具体学习的章节（如 CUTLASS、Triton）配置相应的开发环境。","3.x (Triton 部分需要 Python 环境)",[118,119,120,121,122],"CUDA Toolkit","PyTorch","OneFlow (参考实现)","Triton","CUTLASS",[14,35],[125,126],"cuda","llm","2026-03-27T02:49:30.150509","2026-04-08T23:43:37.334650",[130,135,140,145,150,155],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},25278,"在 Triton 中实现矩阵乘法优化时，分块（tiling）策略与之前 CUDA Shared Memory 的实现有何异同？","Triton 中的分块逻辑与官方教程及之前 CUDA Shared Memory 的实现原理是一致的。虽然 Triton 的文档描述可能显得独特，但其核心思想同样是通过改变数据读取方式（如从以行为主改为按列分块读取）来优化内存访问模式，从而达到类似手动管理 Shared Memory 的效果。具体实现细节可参考相关技术文章：https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FRMR_n1n6nBqpdMl6tdd7pQ","https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fissues\u002F11",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},25279,"编译涉及 half 精度的 CUDA 代码时报错 \"more than one conversion function from 'half' to a built-in type applies\" 如何解决？","该错误通常是因为编译器架构版本不匹配导致的歧义转换。解决方法是在编译命令中明确指定目标架构版本，例如添加参数 `-arch=sm_80`。完整编译命令示例：`nvcc -arch=sm_80 your_code.cu`。","https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fissues\u002F10",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},25280,"CUDA Reduce 优化中，交错寻址（Interleaved Addressing）部分的代码逻辑是否有误？","是的，原代码中存在笔误。在交错寻址优化阶段，共享内存的累加操作应基于线程索引变量（通常记为 `index`），而非线程 ID（`tid`）。正确的代码应为 `sdata[index] += sdata[index + s];`，原错误的 `sdata[tid] += sdata[tid+s];` 已被修正。","https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fissues\u002F4",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},25281,"Reduce 算子优化版本中，输出结果的长度为何会减半？","这是因为在特定的优化版本（如 reduce_v3_idle_threads_free）中，每个 Block 负责归约的元素数量（例如 512 个）与预期的步长（例如 256 个）不匹配，导致最终输出的 Block 数量减少，从而使总输出长度减半。需要检查并调整 Grid 尺寸或每个 Block 处理的元素数量以确保符合预期。","https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fissues\u002F3",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},25282,"README 文档中的代码示例与仓库实际修复后的代码不一致怎么办？","如果发现 README 文档中的代码片段仍包含已知的 Bug（如 memcpy 相关问题），而仓库代码已修复，请以仓库中最新的 `.cu` 源文件代码为准。维护者会在收到反馈后同步更新文档，但在文档更新前，直接参考源码是确保正确性的最佳方式。","https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fissues\u002F5",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},25283,"Reduce v1 版本中共享内存累加行 `sdata[tid] += sdata[tid + s]` 是否应该修改？","是的，该行代码存在逻辑错误，应当修改。为了确保线程访问正确的共享内存偏移量，应将 `tid` 替换为计算好的索引变量 `index`。修正后的代码应为：`sdata[index] += sdata[index + s];`。","https:\u002F\u002Fgithub.com\u002FBBuf\u002Fhow-to-optim-algorithm-in-cuda\u002Fissues\u002F1",[]]