S72867: AI Developer Tools for Accelerated Computing - Scarce Data Isn't Scary!
Matt Frazier, Director for AI Assisted Developer Tools | GTC25
概览:您为何在此?
NVIDIA Nsight 正在创建编码工具,通过以下方式赋能并提升开发者的加速计算能力(CUDA 技能、性能分析与优化):
构建高质量的验证框架
提供直观的用户体验
为人工智能和 GPU 专业知识创造一个增长飞轮
本演示将介绍这些工具的细节以及它们何时能交到开发者手中。
议程
AI 编程助手与 CUDA
数据稀缺性问题
创建一个专业知识飞轮
上下文增强策略
NVIDIA 对 AI 辅助开发未来的愿景
AI 编程助手与 CUDA
NVIDIA 的 AI 编程助手旨在通过以下方式支持开发者:
降低复杂性和易变性 :简化 CUDA 编程的复杂性。
为专家提供即时细节 :即使是经验丰富的开发者也能快速获取所需信息。
加速计算中的持续优化 :优化是一个永无止境的过程。
该系统的核心架构包括一个 CUDA 智能服务,它利用前沿的大型语言模型 (Frontier LLM NIM) 和一个 CUDA 与硬件数据库 (CUDA & Hardware DB)。该服务通过 OpenAPI、VS Code 扩展、其他 IDE 和 API 集成等多种方式向开发者提供支持。
Page 4, AI 编程助手与 CUDA 架构图
数据稀缺性问题
在为 CUDA 开发 AI 编程助手时,面临着独特的数据挑战:
传统 AI 数据挑战 :通常需要大量数据进行训练。
CUDA:专业知识丰富,数据匮乏 :高质量的 CUDA 代码范例相对稀少,但其中蕴含着深厚的专家知识。
超越简单的代码生成 :目标不仅仅是生成代码,而是生成正确且高性能的代码。
基准测试的误导性 :传统的代码生成基准测试可能无法反映真实世界 CUDA 编程的复杂性和性能要求。
现实世界用例 vs. 完美示例 :模型需要处理的是实际开发中遇到的复杂问题,而不仅仅是教科书式的理想化示例。
验证优先方法 (Validation-First Approach)
为了确保 AI 生成代码的质量和可靠性,我们采用了一种“验证优先”的方法,即衡量过程而不仅仅是输出。
正确性 + 性能 :这是评估 CUDA 代码质量的两个核心维度。
黄金基准至关重要 :建立高质量的、经过专家验证的基准解决方案(Golden Baselines)是评估的基础。
硬件感知验证 :验证过程必须考虑到硬件的具体特性,因为性能与硬件紧密相关。
性能分析即为性能真相 :使用性能分析工具(Profiling)来获取关于代码实际性能的最终判断。
该流程如下图所示:首先,针对一个 CUDA 问题,创建一个包含黄金代码解决方案(Golden Code Solution)、单元测试(Unit Tests)和词法测试(Lexical Tests)的验证集。当 AI 模型生成一个响应(Response)时,系统会通过单元测试和词法测试来验证其正确性 ,并通过与黄金解决方案进行性能对比来评估其性能 。
Page 6, 验证优先方法的流程图
创建一个专业知识飞轮
为了解决数据稀缺问题,我们设计了一个“专业知识飞轮”来捕捉并利用专家的知识。
工作流 vs. 单一示例 :相比于孤立的代码示例,完整的开发工作流(从问题到解决方案的迭代过程)包含更丰富的信息。
隐式反馈 > 显式反馈 :开发者在调试、编辑和优化代码过程中的行为(隐式反馈)比他们直接给出的评价(显式反馈)更有价值。
捕捉修改背后的“原因” :通过分析整个工作流,可以理解开发者进行特定修改的深层原因。
从调试会话到训练数据 :将开发者的调试和优化过程(包括调试输出、代码编辑、性能分析器输出等)转化为高质量的训练数据。
人工审核确保质量 :专家的审核是保证数据质量的关键环节。
Page 7, 专业知识飞轮的流程图,展示了如何从用户交互中捕获数据。
下图展示了 NVIDIA Nsight CoPilot 的一个实际应用界面,它正在为 FP8 矩阵乘法生成代码和测试用例,体现了 AI 辅助开发的具体流程。
Page 8, Nsight CoPilot 在 VS Code 中的使用示例
上下文增强策略
为了给 CUDA 开发者开发实用的 AI 辅助工具,我们采用了多种上下文增强策略,而非仅仅依赖于传统的 RAG 或微调。
将文档作为代码上下文 :在生成代码时,将相关的官方文档作为上下文信息提供给模型。
版本感知智能 :AI 助手需要了解不同版本的 CUDA 和硬件,以提供兼容且最优的建议。
性能知识迁移 :将从性能分析中获得的专家知识迁移并整合到 AI 模型中。
为正确的任务选择正确的模型 :根据任务的复杂度和类型,选择最合适的 AI 模型。
超越静态文档 :利用比静态文档更丰富的动态信息源。
NVIDIA Nsight CoPilot for CUDA
Nsight CoPilot 是这一理念的实践产品。
在开发者熟悉的地方提供帮助 :通过集成到主流 IDE(如 VS Code 扩展),无缝融入开发者的现有工作流。
NVIDIA 专业知识层 :该工具不仅仅是一个代码生成器,它融入了 NVIDIA 在 GPU 计算领域的深厚专业知识。
下一步计划是什么?
* 自动分析生成的代码 :自动对 AI 生成的代码进行性能分析,并提供优化建议。
* 解释优化,而不仅仅是代码 :不仅生成优化后的代码,还解释为何这样优化。
* 完整的软件开发生命周期(SDLC)支持 :将 AI 辅助能力扩展到整个开发流程。
Page 10, Nsight Copilot 在 VS Code Marketplace 的截图
真实世界实现
我们的方法在真实世界的实现中取得了显著成果:
相比基础模型的质量提升 :通过整合 CUDA 上下文和专家知识,生成的代码质量远超通用基础模型。
前沿模型 + CUDA 上下文 :结合了最先进的大语言模型与丰富的 CUDA 特定上下文信息。
构建于开源基础之上 :利用并贡献于开源社区。
从代码级优化到系统级优化 :将优化的视野从单个代码片段扩展到整个系统。
专家知识迁移成果 :成功将专家的隐性知识转化为 AI 模型的能力。
未来愿景
我们对 AI 辅助开发的未来愿景包括:
遗留代码库优化 :帮助开发者现代化和优化旧有的 CUDA 代码库。
经过测试验证的技术债务削减 :通过生成经过验证的、高质量的代码来系统性地减少技术债务。
版本迁移支持 :自动化处理 CUDA 版本升级带来的代码迁移工作。
跨产品智能 :整合 NVIDIA 不同开发工具和产品线之间的知识。
NVIDIA 技术导航 :帮助开发者在庞大的 NVIDIA 技术生态中找到最合适的工具和解决方案。
可用性与路线图
GTC 演示 :在 GTC 大会上进行现场演示。
Insight Co-pilot Beta 版访问 :即将开放 Beta 版的访问权限。
验证基准即将发布 :很快会发布用于评估 CUDA 代码生成质量的基准测试。
社区合作邀请 :邀请社区开发者参与合作,共同改进工具。
反馈驱动改进 :用户的反馈是推动产品不断完善的核心动力。