目前还是在学习阶段,把之后可能时常需要用到的技术备忘在这里。
当前在做的DCU相关需要用到hip和ROCm相关知识,但一直对dtk概念不清,在这里作以补充。
概要:
-
CUDA(Compute Unified Device Architecture)是Nvidia推出的一种通用并行计算架构,包括CUDA指令集架构(ISA)和GPU内部的并行计算引擎
-
目前主流的路线主要有两种,第一种选择从芯片到计算平台库都全自研,比如华为基于自己的Ascend(昇腾)系列ASIC(application-specific integrated circuit)构建的CANN计算平台库以及寒武纪基于自家的MLU系列ASIC构建的Neuware;第二种则是选择自研+开源的路线,比如海光信息则是自研开发了DTK(DCU Toolkit)计算平台库,兼容开源的ROCm和适配自家自研的DCU,对标CUDA及GPU。由于兼容了ROCm开源计算平台库,进一步保证了海光DTK的通用性,再加上海光DCU加持,使得海光DTK发展成为较为成熟的生态环境。
ROCm:
- ROCm(Radeon Open Compute Platform)是AMD主导的一个开源计算平台库,Radeon是AMD GPU产品的品牌名,除ROCm之外,还有一系列ROCx的简称,如ROCr(ROC Runtime),ROCk(ROC kernel driver),ROCt(ROC Thunk)等。Windows的一家独大使得Linux的出现成为可能,iOS的封闭造就了Android的蓬勃发展,ROCm的横空出世才让CUDA拥有了真正的竞争对手。