模型算子的理解与入门

一、定义

  1. 对算子的理解
  2. 算子检测指标与工具
  3. 自定义cuda实现pytorch 算子(Taichi库、Numba库、Cupy库和PyTorch的cpp_extension模块)

二、实现

  1. 对算子的理解
    什么是模型算子:如torch.tensor() 、torch.abs() 等运算操作均称为算子。
    不同框架均有自己的算子库,如pytorch、tensorflow、numpy 等框架均有自己的算子库,从而实现不同的运算需求。
    在探索新的深度学习算法的时候,我们可能会遇到PyTorch提供的算子不能满足需求的情况,这时候就需要自定义PyTorch算子,将我们的算法集成到PyTorch的工作流中。同时,为了提高运算效率,算子往往都需要使用CUDA实现。
    作为目前最流行的深度学习库之一,Pytorch一直在推出各种方便用户使用的功能,其他高性能计算库也纷纷增加了对Pytorch的兼容和支持,这让我们自定义CUDA实现PyTorch算子变得非常简单和便捷。
    因此我们一方面还是应该尽可能使用Pytorch提供的算子,毕竟经过这么长时间的更新和迭代,性能肯定是最优的;另一方面也需要认真学习CUDA编程,了解GPU架构,在迫不得已需要自己实现算子的情况下善用各种优化技术和工具,才能不断榨取“性能之油”。
  2. 算子检测指标与工具
    参考文档:https://docs.nvidia.com/cuda/profiler-users-guide/index.html#remote-profiling
    在这里插入图片描述
nsys nvprof --print-gpu-trace python test.py
ncu --metrics dram__bytes_read.sum python3 test.py
compute-sanitizer --kernel-regex kns=test --tool memcheck python test.py
CUDA_LAUNCH_BLOCKING=1 python test.py
  1. 使用Taichi库、Numba库、Cupy库和PyTorch的cpp_extension模块 实现pytorch 算子
    参考: https://www.cnblogs.com/YuanZiming/p/17675072.html
    待续
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值