DLPrimitives: 开源跨平台深度学习原语库和推理引擎

Ray

dlprimitives

DLPrimitives简介

DLPrimitives是一个基于OpenCL的开源深度学习原语库和推理引擎,由Artyom Beilis开发并在GitHub上开源。该项目旨在为多种GPU架构提供高效的深度学习计算支持,实现跨平台的深度学习训练和推理。

项目背景与动机

目前,大多数深度学习训练都是在NVIDIA GPU上使用闭源的CUDA和cuDNN库进行的。这使得在AMD或Intel GPU上进行深度学习变得具有挑战性,甚至几乎不可能。例如,AMD提供的ROCm平台尚不支持RDNA架构(发布已超过一年),也不支持APU和Linux以外的操作系统。

因此,DLPrimitives项目的目标是:

  1. 创建一个类似cuDNN或MIOpen的开源跨平台深度学习原语库,支持多种GPU架构。
  2. 创建一个依赖最小化的推理库,可以在任何现代GPU上高效推理,类似于TensorRT或MIGraphX。
  3. 创建一个小型深度学习框架,作为功能和性能的概念验证。
  4. 集成到现有的大规模深度学习项目中,如PyTorch、TensorFlow、MXNet等,使基于开源OpenCL API的厂商无关解决方案成为深度学习的一等公民。

虽然该项目仍处于初步阶段,但已经取得了一些重要进展。

主要特性

DLPrimitives提供了丰富的深度学习计算原语,包括但不限于:

  • 激活函数:Softmax、LogSoftmax、ReLU、Sigmoid、Tanh等
  • 损失函数:NLLLoss、MSELoss、SoftmaxWithLoss等
  • 卷积操作:2D卷积、转置卷积,支持GEMM、Winograd和深度可分离卷积
  • 池化:最大池化、平均池化,包括全局池化
  • 归一化:Batch Normalization
  • 全连接层
  • 各种元素级操作:加法、乘法、最大值等
  • 张量操作:Concat、Slice、Reshape、Squeeze、Flatten等
  • 降维操作:Sum、Mean、L1范数等

此外,DLPrimitives还实现了常用的优化器,如SGD和Adam。

框架集成

DLPrimitives已经初步集成到了一些主流深度学习框架中:

  1. PyTorch: 开发了一个(几乎)完全独立的OpenCL后端项目 pytorch_dlprim

  2. Caffe-OpenCL: 通过使用DLPrimitives改进了性能 caffe/opencl_dlprim

这些集成项目展示了DLPrimitives的实用性和性能潜力。

ONNX模型支持

DLPrimitives实现了ONNX模型的加载和推理功能,已经在多个ImageNet网络上进行了测试:

  • PyTorch (opset 9、11、13): AlexNet, VGG16, ResNet18, ResNeXt50, Wide ResNet50, EfficientNet-B0/B4, RegNetY, SqueezeNet, MobileNetV2, DenseNet121等
  • MXNet: VGG11, AlexNet, MobileNetV2, DenseNet121, ResNet18, SqueezeNet等
  • TensorFlow: 初步支持ResNet50和DenseNet121 (仅限channel first格式)

这种广泛的模型支持彰显了DLPrimitives的通用性和兼容性。

硬件支持

DLPrimitives已经在多种GPU硬件上进行了测试:

  • AMD: RX 6600XT, RX 560
  • Intel: HD 530 (i5-6600)
  • NVIDIA: GTX 960, GTX 1080, RTX 2060S
  • ARM: Mali G52 MC2 (性能优化尚未完成)
  • Apple: M1 Max (32核心版本)

项目在Windows上测试了AMD RX 560和NVIDIA GTX 960,在macOS上测试了Apple M1 Max。这种广泛的硬件支持体现了DLPrimitives的跨平台特性。

DLPrimitives支持的GPU

开发状态与未来计划

虽然DLPrimitives已经实现了许多重要功能,但项目仍处于积极开发阶段。未来的开发计划包括:

  1. 进一步优化性能,特别是对于ARM Mali等移动GPU
  2. 扩展对更多深度学习操作的支持
  3. 改进与主流深度学习框架的集成
  4. 增强ONNX模型的支持,覆盖更多网络架构
  5. 开发更完善的文档和教程,方便用户使用和贡献

如何使用

DLPrimitives提供了详细的文档,包括安装指南、API参考和使用示例。开发者可以通过以下步骤开始使用DLPrimitives:

  1. 克隆GitHub仓库: git clone https://github.com/artyom-beilis/dlprimitives.git
  2. 按照BUILD.md文件中的说明安装依赖项并编译项目
  3. 参考examples目录中的示例代码,了解如何使用DLPrimitives的各种功能

对于想要将DLPrimitives集成到现有项目中的开发者,可以参考前面提到的PyTorch和Caffe-OpenCL集成项目作为示例。

社区与贡献

DLPrimitives是一个开源项目,欢迎社区贡献。开发者可以通过以下方式参与:

  1. 报告问题和提出功能请求
  2. 提交pull request以修复bug或添加新功能
  3. 改进文档和示例
  4. 在不同硬件平台上测试并报告结果

项目使用MIT许可证,确保了代码的开放性和可重用性。

结论

DLPrimitives为深度学习开发者提供了一个强大而灵活的工具,使他们能够在各种GPU硬件上进行高效的深度学习计算。通过提供开源、跨平台的解决方案,DLPrimitives有潜力成为深度学习生态系统中的重要组成部分,促进AI技术的民主化和普及。

随着项目的不断发展和完善,我们可以期待看到更多创新应用和突破性研究基于DLPrimitives构建。无论是学术研究者、工业界从业者,还是AI爱好者,都可以从这个项目中受益,共同推动深度学习技术的进步。

avatar
0
0
0
相关项目
Project Cover

fastbook

本项目提供涵盖fastai和PyTorch的深度学习教程,适合初学者与进阶用户。可通过Google Colab在线运行,无需本地配置Python环境。项目还包括MOOC课程及相关书籍,系统化帮助用户学习深度学习技术。

Project Cover

pytorch-handbook

本开源书籍为使用PyTorch进行深度学习开发的用户提供系统化的入门指南。教程内容覆盖了从环境搭建到高级应用的各个方面,包括PyTorch基础、深度学习数学原理、神经网络、卷积神经网络、循环神经网络等,还包含实践案例与多GPU并行训练技巧。书籍持续更新,与PyTorch版本同步,适合所有深度学习研究者。

Project Cover

cheatsheets-ai

提供详尽的深度学习和机器学习速查表,包括Tensorflow、Keras、Numpy等热门工具,帮助工程师和研究人员快速掌握核心知识,提高工作效率。访问AI Cheatsheets获取更多资源和最新技术信息,适用于各水平从业者。

Project Cover

leedl-tutorial

李宏毅教授的深度学习教程,基于《机器学习》(2021年春)并进行了优化,涵盖卷积神经网络、生成模型和自监督学习等多个领域。教程通过详细推导和重点讲解,降低了学习难度,适合中文学习者入门深度学习。

Project Cover

TensorFlow-Tutorials

这些教程为深度学习和TensorFlow 2 的新手提供全面指导,涵盖简单线性模型、自然语言处理和图像生成等主题。每个教程附有详细代码示例和相应的YouTube视频讲解,帮助学习者快速掌握。适合希望深入了解TensorFlow及其应用的开发者和研究人员。

Project Cover

Eva Design System

Eva Design System 运用深度学习技术自动创建配色方案,输入主色距离即可生成完整的语义化色彩。该系统有助于品牌色彩的设定及调整,优化设计师的工作流程。

Project Cover

fastai

fastai是一个深度学习库,提供高层组件以快速实现高性能结果,同时为研究人员提供可组合的低层组件。通过分层架构和Python、PyTorch的灵活性,fastai在不牺牲易用性、灵活性和性能的情况下,实现了高效的深度学习。支持多种安装方式,包括Google Colab和conda,适用于Windows和Linux。学习资源丰富,包括书籍、免费课程和详细文档。

Project Cover

d2l-en

这本开源书籍使用Jupyter笔记本无缝整合深度学习的概念、背景和代码,免费提供给所有人。书中包含可运行代码、技术深度和社区讨论,帮助读者解决实际问题并成长为应用机器学习科学家。

Project Cover

TTS

🐸TTS库提供多达16种语言的高级文本到语音转换模型,支持低于200毫秒的流媒体延迟。它包含丰富的工具用于模型训练和微调,并且拥有超过1100种预训练模型,适用于多语言和多说话人TTS任务。此外,该库还支持高效的语料库分析和管理,为语音合成提供全面支持。

最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号