第49卷第4期2023年4月ComputerEngineering计算机工程OclDNN:一种可应用于TensorFlow的通用DNN库陈锐1,孙羽菲1,2,郭强1,隋轶丞1,周振辉1,石昌青1,张玉志1,2(1.南开大学软件学院,天津300457;2.先进计算与关键软件海河实验室,天津300459)摘要:深度学习模型的构建、训练以及推理离不开TensorFlow等机器学习框架中深度学习算子的支撑,对于卷积、池化等深度学习中被高频调用或计算量较大的算子,机器学习框架一般通过调用深度神经网络(DNN)库来提升计算效能。现有DNN库主要由英伟达、AMD等少数国外厂商开发并根据自有硬件设备特点进行优化,但其封闭性导致其他厂商生产的通用加速器难以在深度学习领域发挥作用。为解决现有DNN库无法支持国产加速器的问题,使得深度学习模型能够调用国产加速器进行运算,研究跨平台的通用DNN库,通过对开源MIOpen的结构特点和调用方式进行分析,提出修改和重构该库的方法,并实现一种基于OpenCL的DNN(OclDNN)库。考虑到TensorFlow较高的流行度及其对DNN库调用的特殊性与复杂性,研究通用DNN库在TensorFlow中的集成方法,通过StreamExecutor中的OpenCL平台实现对OclDNN的调用。实验结果表明,OclDNN在英伟达、华为等不同厂商的计算设备上运算结果正确可靠,在相同实验环境下,深度学习算子使用OclDNN时的加速性能比传统CPU并行算法提升了5~60倍。关键词:深度神经网络库;深度学习;开放计算语言;硬件加速器;TensorFlow框架开放科学(资源服务)标志码(OSID):中文引用格式:陈锐,孙羽菲,郭强,等.OclDNN:一种可应用于TensorFlow的通用DNN库[J].计算机工程,2023,49(4):138-148.英文引用格式:CHENR,SUNYF,GUOQ,etal.OclDNN:ageneral-purposeDNNlibraryforTensorFlow[J].ComputerEngineering,2023,49(4):138-148.OclDNN:AGeneral-PurposeDNNLibraryforTensorFlowCHENRui1,SUNYufei1,2,GUOQiang1,SUIYicheng1,ZHOUZhenhui1,SHIChangqing1,ZHANGYuzhi1,2(1.CollegeofSoftware,NankaiUniversity,Tianjin300457,China;2.HaiheLabofITAI,Tianjin300459,China)【Abstract】InmachinelearningframeworkssuchasTensorFlow,theconstruction,training,andreasoningofdeeplearningmodelsrelyonthesupportofdeeplearningoperators.Theefficiencyoffrequentlyusedorcomputationallyheavydeeplearningoperators,suchasconvolutionandpooling,isimprovedinmachinelearnin...