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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 模型推理提高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)
相关文章
|
1月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的16psk调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的16PSK调制解调系统的硬件测试版本。系统在原有仿真基础上增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同信噪比下的性能测试。16PSK通过改变载波相位传输4比特信息,广泛应用于高速数据传输。硬件测试操作详见配套视频。开发板使用及移植方法也一并提供。
37 6
|
2月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的QPSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的QPSK调制解调系统的硬件实现与仿真效果。系统包含测试平台(testbench)、高斯信道模块、误码率统计模块,支持不同SNR设置,并增加了ILA在线数据采集和VIO在线SNR设置功能。通过硬件测试验证了系统在不同信噪比下的性能,提供了详细的模块原理及Verilog代码示例。开发板使用说明和移植方法也一并给出,确保用户能顺利在不同平台上复现该系统。
82 15
|
1月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的8PSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于FPGA实现8PSK调制解调系统,包含高斯信道、误码率统计、ILA数据采集和VIO在线SNR设置模块。通过硬件测试和Matlab仿真,展示了不同SNR下的星座图。8PSK调制通过改变载波相位传递信息,具有高频谱效率和抗干扰能力。开发板使用及程序移植方法详见配套视频和文档。
44 7
|
3月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
77 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
2月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的2FSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的2FSK调制解调系统,包含高斯信道、误码率统计模块及testbench。系统增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同SNR下的硬件测试,并提供操作视频指导。理论部分涵盖频移键控(FSK)原理,包括相位连续与不连续FSK信号的特点及功率谱密度特性。Verilog代码实现了FSK调制解调的核心功能,支持在不同开发板上移植。硬件测试结果展示了不同SNR下的性能表现。
80 6
|
3月前
|
缓存 自然语言处理 并行计算
基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程
本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。
1865 1
|
3月前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
68 2
|
3月前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
4月前
|
计算机视觉
目标检测笔记(二):测试YOLOv5各模块的推理速度
这篇文章是关于如何测试YOLOv5中不同模块(如SPP和SPPF)的推理速度,并通过代码示例展示了如何进行性能分析。
199 3
|
4月前
|
测试技术
谈谈【软件测试的基础知识,基础模型】
谈谈【软件测试的基础知识,基础模型】
44 5

热门文章

最新文章