2025-06-23

    Rust Get Started

    0 Rust

    Rust 最早是 Mozilla 雇员 Graydon Hoare 的个人项目。从 2009 年开始,得到了 Mozilla 研究院的资助,2010 年项目对外公布,2010 ~ 2011 年间实现自举。自此以后,Rust 在部分重...

    Read More
    2025-06-19

    多面体编译与调度语言

    1 多面体编译

    传统编译器通常依赖于中间表征 (intermediate representations)。例如 LLVM-IR,它使用(无)条件分支来编码控制流信息。这种相对低阶的格式在静态分析输入程序的运行时行为(例如缓存未命中),通过使用 flatten,fus...

    Read More
    2025-06-19

    Fused Softmax

    fused softmax 在可以适应 GPU 静态随机存取存储器 (SRAM) 的行的情况下,比 PyTorch 的原生操作快得多。

    1 naive softmax

    Read More
    2025-06-18

    内核融合对于带宽受限操作的优化

    对于读写频繁,带宽受限的操作,数据读写在整个 kernel 耗时比例较大,通过自定义内核融合,尽可能减少数据读取的次数和量,能够有效提高 kernel 性能。

    这里以 softmax 进行实验,比对Read More

    2025-06-18

    1 一些用于调试的实用函数

    设置环境变量 TRITON_INTERPRET = 1,可以像调试任何CPU程序一样调试Triton kernel。然后Triton在CPU上运行,但模拟它在GPU上运行。

    <...
    Read More
    2025-06-17

    triton编程模型

    在CUDA中,将计算分解为两个层次:首先是块,然后每个块进一步分解为线程。一个块中的所有线程运行在同一个SM上,并共享相同的共享内存。每个线程计算标量

    1 不带 mask

    在Tr...

    Read More
    2025-06-17

    triton和cuda编程模型对比

    基于阻塞算法的编程范式可以促进神经网络的高性能计算内核的构建。在矩阵乘法中,CUDA 和 Triton 编程模型的区别如下:

    1 CUDA 编程模型(标量程序,阻塞线程)

    Read More
    2025-06-16

    triton语义

    Triton 在大多数情况下遵守 NumPy 的语义,但也有一些例外。

    1 类型提升

    类型提升 (Type Promotion) 是在不同数据类型的张量参与运算时发生的。对于与双下划线方法相关的二元运算和三元函数 Read More