性能优化

微信扫码分享
从零学大语言模型 L6:Kernels, Triton, XLA | 斯坦福CS336  2026春季

从零学大语言模型 L6:Kernels, Triton, XLA | 斯坦福CS336 2026春季

**视频 AI 总结**:该视频深入讲解了 GPU 编程的核心概念与实战技巧,重点介绍了如何使用 Triton 语言编写高效内核,并通过基准测试和性能分析优化代码。视频从 GPU 的硬件架构(SM、共享内存、HBM)出发,解释了线程、线程块、网格的编程模型,然后通过 GeLU、Softmax、矩阵乘法等实例,演示了从元素级操作到复杂 tile 算法的实现过程,强调了理解硬件特性(如 warp、bank conflict、内存合并)对性能的关键影响。 **主要内容**: - GPU 硬件层级:SM、寄存器、L1/共享内存、L2 缓存、HBM,以及带宽与延迟的权衡。 - 编程模型:线程、线程块(CTA)、网格,以及 warp 的概念和分支发散问题。 - 性能影响因素:occupancy、bank conflict、内存合并、块占用率等。 - 基准测试与性能分析:使用 CUDA events 测量时间,用 profiler 观察内核调用。 - Triton 内核编写:以 GeLU、Softmax、行求和、矩阵乘法为例,展示从简单到复杂的实现。 - 代码优化策略:tiling、kernel fusion(如 matmul + ReLU)、减少 HBM 访问次数。 课件与代码:https://cs336.stanford.edu/

29 0 0 3 天前
Pinocchio 教程 | 零依赖 Solana 程序开发的 SDK

Pinocchio 教程 | 零依赖 Solana 程序开发的 SDK

视频 AI 总结: 该视频主要介绍了 Pinocchio,一个用于 Solana 程序开发的 SDK,并由其创建者 Fibo 进行了详细讲解。视频核心内容是 Pinocchio 的设计理念、优势以及如何使用它来优化 Solana 程序的性能,特别是减少计算单元(CU)的消耗。Pinocchio 通过零拷贝技术、轻量级类型和优化的日志记录等方式,显著降低了程序的资源消耗,从而提高交易的成功率和降低费用。 视频中提出的关键信息包括: * Pinocchio 的诞生是为了解决 Solana 程序开发中依赖项过多和性能低效的问题。 * Pinocchio 采用零拷贝技术,避免了不必要的数据复制,从而节省了大量的计算单元。 * Pinocchio 提供了轻量级的类型和 API,使得程序开发更加高效。 * Pinocchio 的日志记录功能经过优化,可以显著减少日志记录所消耗的计算单元。 * Pinocchio 并不强制使用不安全的代码,开发者可以选择安全或不安全的路径,根据自身需求进行优化。 * Pinocchio 的结构设计灵活,开发者可以根据自己的喜好和需求来组织代码。 * Pinocchio 社区活跃,有许多学习资源和示例可供参考。 * Pinocchio 的未来发展方向是与 Solana SDK 共享类型,以便更好地集成和互操作。

904 0 0 2025-10-25 10:56
如何优化 Solana 程序计算单元(CU) PART 1

如何优化 Solana 程序计算单元(CU) PART 1

视频 AI 总结: 该视频主要讲解了 Solana 智能合约中计算单元(Compute Unit, CU)优化的重要性,以及如何通过一些最佳实践来减少 CU 的使用,从而提高交易效率和吞吐量。视频分为两个部分,第一部分构建了一个包含低效代码的 Solana 程序,第二部分则对该程序进行优化,并分析了优化方法对 CU 使用的影响。 关键信息: 1. **CU 的重要性**:每个交易的计算资源是有限的,指令消耗的 CU 越多,同一交易中能执行的其他操作就越少。 2. **交易和区块的限制**:单个交易和整个区块都有 CU 限制,优化 CU 使用有助于提高 Solana 的吞吐量。 3. **不必要的日志记录**:移除不必要的日志记录可以显著减少 CU 的使用。 4. **字符串拼接**:字符串拼接操作会消耗大量 CU,应尽量避免。 5. **公钥编码**:使用 `log` 函数直接打印公钥比手动进行 Base58 编码更高效。 6. **开发与生产环境区分**:调试阶段的日志和检查在生产环境中可能是不必要的,应移除以优化性能。

1485 0 0 2025-09-24 15:09
Solana 教程 - Pinocchio 转账 Hook 程序

Solana 教程 - Pinocchio 转账 Hook 程序

视频 AI 总结: 本视频讲解了如何使用 Pinocchio 框架构建一个高效的 Solana Transfer Hook 程序。目标是创建一个简单的 Hook,验证传输的 Token 数量是否大于等于 1,并检查是否确实是从 Hook 中调用的。视频逐步演示了程序的编写、部署和测试过程,包括读取指令数据、获取 Token 小数位数、检查账户所有者、以及验证是否正在进行传输。最终实现了一个功能完善且计算效率高的 Transfer Hook 程序,并与使用 Anchor 框架的实现进行了性能对比。 关键信息: * 使用 Pinocchio 框架可以创建计算效率更高的 Solana 程序。 * Transfer Hook 程序可以验证 Token 传输的数量和调用来源。 * 程序需要读取指令数据、账户数据,并进行所有者检查。 * 通过 `find_program_address` 可以派生账户地址。 * Pinocchio 框架提供了创建账户和调用其他程序的功能。 * 对程序进行性能测试,Pinocchio 框架比 Anchor 框架更有效率。

1438 0 0 2025-09-12 11:48
Jolt、zkVM 和加速区块链 | Justin Thaler

Jolt、zkVM 和加速区块链 | Justin Thaler

视频 AI 总结: 该视频介绍了 Jolt,一种新的零知识虚拟机(ZKVM),它允许证明者证明计算机程序的正确执行。Jolt 基于 RISC-V CPU,通过重复执行 CPU 的取指、解码、执行周期来实现。ZKVM 的优势在于其对开发者友好,无需了解复杂的 SNARK 或电路知识,并简化了形式验证过程。Jolt 的优势在于其更高的性能,更快的证明速度,以及更容易地修改虚拟机,例如添加新的指令集。ZKVM 的目标是普及零知识证明技术,让更多人可以在不了解底层复杂性的情况下使用 SNARK。虽然 ZKVM 在性能方面存在挑战,但 Jolt 在性能上有所提升,并有望在未来达到一个可以接受的水平,从而推动 ZKVM 的广泛应用。 关键信息: * Jolt 是一种新的 ZKVM,用于证明计算机程序的正确执行。 * Jolt 基于 RISC-V CPU,通过模拟 CPU 的取指、解码、执行周期来实现。 * ZKVM 的优势包括对开发者友好、简化形式验证。 * Jolt 的优势在于性能更高、证明速度更快、易于修改虚拟机。 * ZKVM 的目标是普及零知识证明技术。 * 性能是 ZKVM 的主要挑战,但 Jolt 在这方面有所改进。

1256 0 0 2025-07-08 17:38
从零学大语言模型 L5:GPU  | 斯坦福 CS336 2025年春季

从零学大语言模型 L5:GPU | 斯坦福 CS336 2025年春季

视频的核心内容是讲解GPU的工作原理、性能优化技巧以及如何利用这些知识加速深度学习模型。首先介绍了GPU的架构,包括流多处理器(SM)、线程块(block)、线程束(warp)等概念,并强调了内存层次的重要性。接着分析了GPU性能优化的关键策略,如降低精度(混合精度)、算子融合、重计算、内存合并(coalescing)和分块(tiling)。最后以FlashAttention为例,展示了如何结合这些技术实现高效的注意力计算,避免全局内存的频繁访问。 关键信息:GPU的SIMT执行模型、内存层次(寄存器、共享内存、全局内存)、性能优化六技巧(条件分支、低精度、算子融合、重计算、内存合并、分块)、FlashAttention通过在线softmax和分块实现亚二次内存访问。 课件与代码:https://cs336.stanford.edu/spring2025/

27 0 0 2025-06-27 16:25