AI 卡的工作原理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lsww
V2EX    NVIDIA

AI 卡的工作原理

  •  
  •   lsww 2022-11-18 21:05:48 +08:00 via Android 5356 次点击
    这是一个创建于 1123 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想从操作系统角度了解 AI 卡的工作原理,哪里能找到好的资料?
    21 条回复    2022-11-23 20:50:37 +08:00
    jr55475f112iz2tu
        1
    jr55475f112iz2tu  
       2022-11-18 21:58:41 +08:00
    你的意思是机器学习算法如何通过 CUDA 与 N 卡硬件打交道?
    kakalala
        2
    kakalala  
       2022-11-18 22:41:41 +08:00
    opencl 不是开源的么,去看一个 opencl 的实现估计就清楚了
    Laussan
        3
    Laussan  
       2022-11-18 22:49:06 +08:00
    在我浅薄的观念里这和操作系统好像没什么关系...
    Yuhyeong
        4
    Yuhyeong  
       2022-11-18 22:51:52 +08:00
    npu ?
    寒武纪那种吗
    MeePawn666
        5
    MeePawn666  
       2022-11-19 01:39:46 +08:00 via Android
    操作系统和加速器为数不多的关系也就 driver 了,可惜并了解不到
    ALXG
        6
    ALXG  
       2022-11-19 02:24:42 +08:00
    如果是操作系统, 那就是控制和通信问题咯. 和网卡也大差不差. 实际上这都是很靠近应用层的东西, 主机有他没他都能启动, 控制复杂性主要在厂商那边, 操作系统和 CPU 这边都是提供标准的.
    lsww
        7
    lsww  
    OP
       2022-11-19 08:41:53 +08:00 via Android
    @czfy 是的。转了方向,要加强学习了。
    lsww
        8
    lsww  
    OP
       2022-11-19 08:42:53 +08:00 via Android
    @kakalala 谢谢,我去看看。
    lsww
        9
    lsww  
    OP
       2022-11-19 08:43:34 +08:00 via Android
    @MeePawn666 所以也在找切入点。
    lsww
        10
    lsww  
    OP
       2022-11-19 08:45:07 +08:00 via Android
    @ALXG 有能讲明白这部分的资料吗?网上的资料都比较零散
    statumer
        11
    statumer  
       2022-11-19 09:29:25 +08:00
    GPGPU 都是 PCIE 设备,你要想好你是打算分析 PCIE 通信 ( driver 问题 ) 还是 GPGPU 架构 ( CUDA 编程 )?
    lsww
        12
    lsww  
    OP
       2022-11-19 14:12:14 +08:00 via Android
    @statumer 还在研究中,可能都会涉及。
    ALXG
        13
    ALXG  
       2022-11-19 15:54:00 +08:00
    @lsww
    你试试这个? 往往把 PCI 设备的控制界面映射到内存空间上. 还有一些中断上的配合. 大显存的 N 卡往往还要 CPU 这边配合一个 Above 4G Decoding.
    lonelygo
        14
    lonelygo  
       2022-11-20 11:30:08 +08:00   4
    @lsww 题主不知入行多久,目前在做什么事情,直接点说,这个问题问的并不清楚:
    首先:AI 卡可以理解为异构的 AI 计算加速卡。
    如果是:`从操作系统角度理解其工作原理`,那么是不是在问:
    `异构计算加速平台的计算调度在 OS 层面做哪些工作?`,那对用户来说其实就是:PCIe ,DMA 这些数据搬运相关的事情,其他的比如中断这些,都是厂商软件栈的事情了。
    如果是:`AI 加速卡的工作原理`,那么是不是在问:
    `AI 加速卡如何做到高效的并行计算,来提高计算效率的?`,那就从怎么做 GEMM 加速,并行计算,这些看起,#2 @kakalala 提的 opencl 是理解并行计算的一个路径,还可以去看看 cuda 的文档,从硬件架构到 SIMT 到 Warp 都有图文并茂的解释。
    另外,从技术角度,AI 训练和 AI 推理,看起来差不多,但是从操作系统来看,两者之间的软件差异其实非常大:
    推理简单,把主机代码和设备代码确定了,workload 丢给 AI 卡,等回调,主机代码继续干后处理完事。
    训练复杂,单机多卡,多机多卡集群,涉及到分布式计算,通讯,模型并行 /数据并行 /混合并行,等一大堆东西。
    lsww
        15
    lsww  
    OP
       2022-11-20 14:57:26 +08:00 via Android
    @lonelygo 大佬专业,向你学习。应该就是多机多卡集群下的推理和训练。
    mepwang
        16
    mepwang  
       2022-11-20 20:01:26 +08:00
    AI 卡就是通过驱动程序,把一些 AI 算子直接用硬件支持来加速
    julyclyde
        17
    julyclyde  
       2022-11-21 08:29:33 +08:00
    @adoal 还记得我那句话吗
    adoal
        18
    adoal  
       2022-11-21 09:31:10 +08:00 via iPhone
    @julyclyde 文研计?
    julyclyde
        19
    julyclyde  
       2022-11-21 10:37:56 +08:00
    @adoal 是呀
    lonelygo
        20
    lonelygo  
       2022-11-22 10:36:49 +08:00
    @lsww 训练推理分开说。
    先说推理。目前大模型是有,但是不多,模型也没大到一定要上多机的。毕竟现在 20G 、40G 显存的 GPU 还是有的,模型再大,整个单机多卡足矣。而且这种推理侧的模型拆分,其实就是简单粗暴,把模型切成几片,保证每个分片的 weight 能塞到 AI 卡的 DDR 上去就行,然后多卡组个流水线完事。
    再说训练。这玩意就能说几天几夜了。
    不管单机多卡还是多机多卡,首先要知道的:
    并行计算相关的概念和知识;
    然后并行训练的三个名词:数据并行,模型并行,混合并行;
    多机的情况下,应为有跨机器通讯甚至是跨机柜通讯,靠网卡那是万万不行的,又要去了解:
    各种大规模并行算法的拓扑设计(其实顺手也就了解了物理服务器的拓扑设计),这个有不少经典 paper 可以看;
    高性能通讯,那就绕不开 RoCE 和 IB 了,又是知识点;
    这些搞明白了,下面就要琢磨下各框架怎么做分布式并行训练的:
    前人怎么改造 TF 和 PyTorch 的;
    怎么把 TF 、PyTorch 当后端,在上面怼个分布式的轮子(框架)来实现分布式的;
    OneFlow 怎么平地起高楼,从头撸一个分布式并行训练优先的框架,怎么保证不改代码单卡、多卡、多机多卡都能玩起来;

    基本概念都有了,那么就可以琢磨琢磨哪里有优化点可性能瓶颈了,可以造轮子了。
    lsww
        21
    lsww  
    OP
       2022-11-23 20:50:37 +08:00 via Android
    @lonelygo 感谢。信息量太大,收藏下来慢慢学习
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4948 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 03:50 PVG 11:50 LAX 19:50 JFK 22:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86