【学习 cmake step5】 安装与测试 目标: 安装, 测试 将 MathFunctions 库安装到 lib 目录下,头文件安装到 include 目录下 将 Tutorial 可执行文件安装到 bin 目录下 为 Tutorial 添加单元测试, 并且使用 ctest 来执行测试 源码实现 MathFunctions/CMakeLists.txt 123456789# TODO1 设置要安装的库 "MathFuncti 2026-08-16 cpp #C++ #cmake
【学习 cmake step4】 Generator Expression 目标: 学习使用 cmake 中的 Generator Expression 语法。 Generator expressions 是 CMake 中一种强大的功能,它允许用户根据生成系统的状态有条件地设置变量或选项。这种表达式在构建时进行计算和展开,因此可以根据构建配置的不同动态地设置值。 源码实现 使用 Generator Expression(GE) 根据不同的编译器,为 target 添加不 2026-08-16 cpp #C++ #cmake
从 CUDA 到 Triton:深入理解 Triton 的即时编译与自动调优 flex-gemm 是一个使用 triton 开发的稀疏卷积库,在运行的过程中因为要根据输入数据进行算子调优,所以在计算时间上有很大的波动。在解决 flex-gemm triton 算子编译优化的过程中,系统性的学习了一下 triton 的编译流程。 这里写一篇文章做个记录。 一、CUDA 编程核心 1.1 线程架构 NVIDIA GPU 的设计哲学是“用海量线程隐藏内存延迟”。为了高效管理这些线 2026-08-06 CUDA #machinelearning #deeplearning #CUDA
【投机解码专题】自主多头预测架构-1:MEDUSA 独立草稿模型的两大痛点 草稿模型输出 token 的概率分布与目标模型存在偏差,限制了草稿的接受长度。 在部署的时候再额外维护一个小模型的成本太高。 自主多头预测架构 (Self-Speculative / Multi-Head Decoding) 的解法:把草稿模型“吞进”目标模型内部。 在目标模型上增加多个独立的预测头作为草稿模型,并且复用目标模型的 hidden-state 来确保在概 2026-07-09 paper #LLM #Speculative-Decoding
【投机解码专题】核心论文-2: Accelerating-Large-Language-Model-Decoding-with-Speculative-Sampling “Accelerating Large Language Model Decoding with Speculative Sampling” 是投机解码核心论文解读的第二篇论文,它同样是由 Google DeepMind 团队与 2023 年发表的。 它和上一篇 “Fast Inference from Transformers via Speculative Decoding” 的区别是,上一 2026-07-03 paper #LLM #Speculative-Decoding
【投机解码专题】核心论文-1: Speculative-Decoding-Fast-Inference-from-Transformers-via-Speculative-Decoding 投机解码(Speculative Decoding)的核心思想,在 2022–2023 年间由 Google Research 和 DeepMind 两个团队几乎同时独立提出,代表性工作分别是: “Fast Inference from Transformers via Speculative Decoding”(Leviathan et al., 2023) “Accelerating Lar 2026-07-02 paper #LLM #Speculative-Decoding
【学习 cmake step3】 设置编译参数 目标:使用更加现代的方法为 MathFunctions library 设置编译参数 Step 3: Adding Usage Requirements for a Library 源码实现 Step3/CMakeLists.txt 123456789101112131415161718192021222324252627282930cmake_minimum_required(VERSION 3 2024-07-12 cpp #C++ #cmake
【学习 cmake step1】 创建一个简单的 C++ 项目 本文是我学习 cmake 官方教程的笔记,我在官方教程的基础上,对其中的知识点做了展开描述。 什么是 cmake CMake 是一个跨平台的软件构建工具。 它的主要功能包括 跨平台:CMake 可以生成适用于 Windows、Linux、macOS 等多种平台的项目文件。 灵活:CMake 的配置文件使用一种类似 C++ 的语言,可以灵活地描述软件的构建过程。 可扩展:CMake 提供了丰富的 2024-01-03 cpp #C++ #cmake
【学习 cmake step2】 创建公共库(library) 目标:学习在项目中如何构建和使用一个公共库(library)。 在项目子文件夹中创建一个公共库,名字叫做 MathFunctions 供项目使用。 提供一个编译选项,来选择是使用 MathFunctions 还是系统库。 源码实现 Step 2: Adding a Library 目标1 创建 MathFunctions 公共库 Step2/MathFunctions/CMakeLists.t 2024-01-03 cpp #C++ #cmake
CUDA 代码编译流程 1 编译流程 随着 Nvidia 不断更新 GPU 硬件设计架构,每一代架构更迭都会引入新的功能,在同一代架构中不同的 GPU 型号在硬件配置上与性能上也会有一些细小的差异。 Nvidia 提供了一套代号来标识 GPU 的真实架构,它的格式是 sm_xy,x 代表 GPU 架构世代的编号,y代表 GPU 在这个架构世代中的版本号。为了方便对比 GPU 能力,如果 x1y1 <= x2y2 那 2024-01-03 CUDA #machinelearning #deeplearning #CUDA