模型推理提高5-20倍,一行代码测试多个DL编译器,这个库不懂硬件也会用

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 模型推理提高5-20倍,一行代码测试多个DL编译器,这个库不懂硬件也会用
这个 Nebullvm 一体化库,允许你在一行代码中测试多个 DL 编译器,并将模型的推理速度提高 5-20 倍。


近日,reddit 上一个帖子引来大量网友的讨论,帖子主要内容为:几乎没有人知道优化 AI 模型有多容易,通过添加几行代码,模型的推理速度提高 5-20 倍。


发帖人是初创公司 Nebuly 的联合创始人兼首席运营官 Emile Courthoud。Courthoud 认为目前开发人员虽然精通于 AI、数据集清洗和模型训练等,但是他们在硬件、编译器、计算、云计算等方面知识有欠缺。这导致开发人员会花费大量时间来提高软件的性能,而没有意识到选择合适硬件的重要性。

这个问题困扰了 Courthoud 很长时间,所以他和在 Nebuly 的几个朋友(都来自 MIT、ETH 和 EPFL)将大量精力投入到一个名为 nebullvm 的开源库中,该库涉及 DL 编译器技术,任何开发人员都可以访问,即使是对硬件一无所知的人也可以使用,该库旨在将所有开源的 AI 编译器统一在同一个易于使用的接口下。

Nebullvm 是如何工作的?总体而言,它通过测试不同的 DL(深度学习) 编译器并为用户选择最佳的一个,使得用户所用的 AI 模型与机器(CPU、GPU 等)形成最佳耦合,模型可以加速约 5-20 倍,只需几行代码即可完成。


项目地址:https://github.com/nebuly-ai/nebullvm

Nebullvm 项目简介

用户在下面几种情况下可以选择使用 Nebullvm 库。

  • 想要加快 AI 模型的响应时间;
  • 不希望测试市场上所有的 DL 编译器,只想了解对自身特定应用程序最好的那个;
  • 喜欢把复杂问题简单化,想要几行代码,就知道哪个 DL 编译器最适合自己等。


项目作者设计了一些超级易用的内容:你只需输入 DL 模型,就会得到一个和硬件匹配的最优模型版本。

目前,该项目支持的框架包括 PyTorch、TensorFlow,不久也会支持 Hugging Face。支持的 DL 编译器包括 OpenVINO、TensorRT、TVM,不久也会支持 Rammer、MLIR。

安装 nebullvm,用户可以采用源代码安装,使用 git 安装如下所示:


git clone https://github.com/nebuly-ai/nebullvm.git


然后进入 repo 并使用 pip 安装 nebullvm:



cd nebullvmpip install .


PyPi 安装:安装 nebullvm 最简单的方法是使用 pip,然后运行如下代码


pip install nebullvm


自动安装方式如下:此方式可以自动安装所有由 nebullvm 支持的 DL 编译器。


python -c "import nebullvm"


但是,如果用户希望避免自动安装,可以采用如下方式:


export NO_COMPILER_INSTALLATION=1


或从命令行添加:



import osos.environ["NO_COMPILER_INSTALLATION"] = "1"


安装完 nebullvm 就可以使用了,下面代码展示了使用 nebullvm 优化 pytorch 模型的示例:





>>> import torch>>> import torchvision.models as models>>> from nebullvm import optimize_torch_model>>> model = models.efficientnet_b0()>>> bs, input_sizes = 1, [(3, 256, 256)]>>> save_dir = ".">>> optimized_model = optimize_torch_model(...     model, batch_size=bs, input_sizes=input_sizes, save_dir=save_dir... )>>> x = torch.randn((bs, *input_sizes[0]))>>> res = optimized_model(x)
相关文章
|
2月前
|
API Go
LabVIEW如何减少下一代测试系统中的硬件过时6
LabVIEW如何减少下一代测试系统中的硬件过时6
21 1
|
2月前
|
XML 编解码 API
LabVIEW如何减少下一代测试系统中的硬件过时5
LabVIEW如何减少下一代测试系统中的硬件过时5
21 1
|
2月前
|
测试技术
LabVIEW如何减少下一代测试系统中的硬件过时4
LabVIEW如何减少下一代测试系统中的硬件过时4
20 1
|
2月前
|
编解码 API
LabVIEW如何减少下一代测试系统中的硬件过时 1
LabVIEW如何减少下一代测试系统中的硬件过时 1
20 0
|
2月前
|
网络协议 Windows
LabVIEW如何减少下一代测试系统中的硬件过时3
LabVIEW如何减少下一代测试系统中的硬件过时3
16 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
2024年5月大语言模型论文推荐:模型优化、缩放到推理、基准测试和增强性能
本文汇总了2024年5月发布的七篇重要大语言模型论文,涉及模型优化、缩放、推理及性能增强。
63 2
|
2天前
|
数据库
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
|
26天前
|
SQL DataWorks 安全
DataWorks产品使用合集之在进行测试数据集成时,目标库的数据是源库数据的3倍量,是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之在进行测试数据集成时,目标库的数据是源库数据的3倍量,是什么导致的
|
2月前
|
算法 计算机视觉 异构计算
基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于肤色检测算法的摘要:使用MATLAB 2022a和Vivado 2019.2进行测试和仿真,涉及图像预处理、RGB到YCbCr转换、肤色模型(基于阈值或概率)以及人脸检测。核心程序展示了如何读取图像数据并输入到FPGA处理,通过`tops`模块进行中值滤波、颜色空间转换及人脸检测,最终结果输出到"face.txt"。
|
1月前
|
测试技术 程序员 开发者
软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)
软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)
23 0