[Microsoft/AI-System]微软AI系统 Lecture3+Lab3

2021-07-13
地址: microsoft/AI-System


Lecture 3:Computation frameworks for DNN
主要讲了

  1. Tensor概念
    2.DAG图
    3.反向传播和自动求导
  2. 图执行和调度
    5.静态图vs动态图
  3. 硬件支持

两个概念,我一直没弄清楚的
基本数据结构:Tensor
基本运算单元:Operator
计算内核(kernel)是什么

基本概念
基本概念2
  1. 图执行和调度


    GEMM自动融合
并发流程
kernel是什么

总结


总结

总结2

Lab 3 CUDA实现和优化
地址:CUDA implementation

实验目标

1.理解PyTorch中Linear张量运算的计算过程,推导计算公式(同Lab2)
2.了解GPU端加速的原理,CUDA内核编程和实现一个kernel的原理
3.实现CUDA版本的定制化张量运算

3.1编写.cu文件,实现矩阵相乘的kernel
3.2在上述.cu文件中,编写使用cuda进行前向计算和反向传播的函数
3.3基于C++ API,编写.cpp文件,调用上述函数,实现Linear张量运算的前向计算和反向传播。
3.4将代码生成python的C++扩展
3.5使用基于C++的函数扩展,实现自定义Linear类模块的前向计算和反向传播函数
3.6运行程序,验证网络正确性

2.了解GPU端加速的原理,CUDA内核编程和实现一个kernel的原理
难点:cuda编程
概念扫盲:CUDA编程入门极简教程 - 小小将的文章 - 知乎
cude编程:Nvdia示例

cuda 测试代码from Nvdia示例
cuda 性能数据 nvprof
遇到的问题The user does not have permission to profile on the target device
解决方案:靠谱

本次实验的内容
先把Lab3的代码copy到实验环境中
进入extend文件夹
输入python setup.py install --user
注意readme.md的部分写错了,漏了setup的后缀

但是这的setup代码出错了,
error: ‘TORCH_CHECK’ was not declared in this scope
还没找到解决方案

所以本次实验暂告失败
虽然代码没跑起来,但是学习了cuda编程的基础内容。

代码:没有
笔记:

你可能感兴趣的:([Microsoft/AI-System]微软AI系统 Lecture3+Lab3)