CUDA内核执行配置及线程索引计算
前面的内容我们知道可以为一个核函数配置多个线程(每个线程同一时刻只能处理一个数据),而这些线程的组织是通过内核调用函数的执行配置 <<<grid_size, block_size>> >来决定的,执行配置决定了如何划分并行任务。
BLOG / 766 ARTICLES
计算机基础、AI、后端与客户端开发笔记
前面的内容我们知道可以为一个核函数配置多个线程(每个线程同一时刻只能处理一个数据),而这些线程的组织是通过内核调用函数的执行配置 <<<grid_size, block_size>> >来决定的,执行配置决定了如何划分并行任务。
多核处理器设计的兴起,同时针对多核设计还没有统一的设计原则,这使得程序员编写高性能程序面临更加复杂的挑战,因此提出一个易于理解并能提供性能优化建议的性能模型显得尤为重要。
LN 作用是减少了不同特征之间的依赖关系,可以使得模型训练更加稳定,收敛更快,并提高了模型的泛化能力。Batch Norm 和 Layer Norm 的区别一句话总结就是 bn 是切特征,ln 是切样本。
GPU 卡间互连带宽,指的是不同卡之间互连通信速度。单机多卡内存和 GPU、GPU 和 GPU 之间互联可通过 PCIE、NVLink、NVSwitch; 多机多卡 GPU 之间(不同主机)、CPU 与 GPU 之间互联可通过 GPUDirect RDMA、IB/万兆以太网 + TCP/IP。
Triton 既是语言,可用于编写高性能计算 GPU kernel,使用 Triton 编写核函数必须按照其提供的 DSL 进行编写,否则运行失败。也是编译器(根据配置自动生成 kernel),采用 just-in-time 机制进行编译。如果你编写了一个用 triton.jit 修饰的核函数,那么在运行时其会被编译成底层 GPU 二进制(PTX / SAS
torch 中 Tensor 的乘法有几种方法,如 *、torch.mul、torch.multiply、torch.dot、torch.mv、torch.mm、torch.matmul、torch.einsum 等,主要分为 3 种:
TT-BUDA 是为 Tenstorrent 芯片开发的 AI 软件栈,兼容主流深度学习框架如 Pytorch、TensorFlow 等,通过 TT-BUDA 软件栈能够生成可执行文件,用于在 Tenstorrent 芯片上运行的 AI 模型。