TVM 从入门到精通 | 安装 TVM (Part 1)

TVM:一种自动端到端优化的深度学习编译器 现有的 DL 框架依赖于计算图 IR 来实现优化,比如自动微分(Auto Differentiation)和动态内存管理。然而计算图层级(Graph-level)的优化对硬件后端特定算子层级(Operator-level)的变换来说,往往视角太高了。这些框架大部分关注的都是服务器级 GPU 设备中的一小撮,而把目标机相关的优化委派给高度工程化的、厂家特化的算子库。这类算子库需要大量的人工调优,也因此过于特殊化(普适性差)和不透明,导致不易于在硬件平台之间移植。即使是框架支持的后端,优化计算图时也需要在以下两 阅读详情

内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文重点介绍如何通过源码安装 TVM。

关键词:TVM 快速上手 源码安装

在之前的文章《TVM 中文站正式上线!最全机器学习模型部署「参考书」它来了》中,我们整体介绍了 TVM 的重要作用,以及如何借助 TVM 中文文档,开启机器学习编译器的探索之路。

接下来,我们将以系列教程的形式, 详细讲解 TVM 从入门到精通的学习路径,希望每位开发者都能成为优秀的机器学习编译工程师!

本篇文章中,我们将介绍「打地基」的关键步骤–安装 TVM。

TVM 的安装可通过 3 种途径实现:

  1. 从源码安装
  2. Docker 镜像
  3. NNPACK Contrib 安装

作为安装 TVM 教程的 (Part 1),本文将详细讲解从源码安装的最佳实践, 并进行最大限度地灵活配置和编译。

逐步讲解如何从源码安装 TVM

在各种系统中从 0 到 1 构建和安装 TVM 软件包包括两个步骤:

  1. 从 C++ 代码中构建共享库
  • Linux:libtvm.so
  • macOS :libtvm.dylib
  • Windows:libtvm.dll

2.为编程语言包进行设置(如 Python 包)

下载 TVM 源代码,请访问:https://tvm.apache.org/download

开发者:从 GitHub 获取源代码

从 GitHub 上克隆源码仓库,请使用 --recursive 选项来克隆子模块。

git clone --recursive https://github.com/apache/tvm tvm

Windows 用户可以打开 Git shell,并输入以下命令:

git submodule init
git submodule update

构建共享库

我们的目标是构建共享库:

  • 在 Linux 上
    目标库是 libtvm.so 和 libtvm_runtime.so

  • 在 MacOS 上
    目标库是 libtvm.dylib 和 libtvm_runtime.dylib

  • 在 Windows 上
    目标库是 libtvm.dll 和 libtvm_runtime.dll

也可以只构建运行时库:
https://tvm.hyper.ai/docs/how_to/deploy/

TVM 库的最低构建要求是:

  • 支持 C++17 的最新 C++ 编译器
    GCC 7.1
    Clang 5.0
    Apple Clang 9.3
    Visual Stuio 2019 (v16.7)

  • CMake 3.10 或更高版本

  • 推荐使用 LLVM 构建 TVM 库以启用所有功能。

  • 如需使用 CUDA,请确保 CUDA 工具包的版本至少在 8.0 以上。
    注意:CUDA 旧版本升级后,请删除旧版本并重新启动。

  • macOS 可安装 Homebrew 以方便安装和管理依赖。

  • Python:推荐使用 3.7.X+ 和 3.8.X+ 版本,3.9.X+ 暂时不支持。

在 Ubuntu/Debian 等 Linux 操作系统上,要安装这些依赖环境,请在终端执行:

sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev

用 Homebrew 为搭载 Intel 或 M1 芯片的 macOS 安装所需的依赖,需遵循 Homebrew 指定的安装步骤,以保证正确安装和配置这些依赖:

brew install gcc git cmake
brew install llvm
brew install python@3.8

使用 cmake 来构建库

TVM 的配置可以通过编辑 config.cmake 和/或在命令行传递 cmake flags 来修改:

  • 如果没有安装 cmake,可访问以下官网下载最新版本 https://cmake.org/download/
  • 创建一个构建目录,将 cmake/config.cmake 复制到该目录
mkdir build
cp cmake/config.cmake build
  • 编辑 build/config.cmake 自定义编译选项

    • 对于 macOS 某些版本的 Xcode,需要在 LDFLAGS 中添加 -lc++abi,以免出现链接错误

    • 将 set(USE_CUDA OFF) 改为 set(USE_CUDA ON) 以启用 CUDA 后端。对其他你想构建的后端和库(OpenCL,RCOM,METAL,VULKAN…)做同样的处理。

    • 为了便于调试,请确保使用 set(USE_GRAPH_EXECUTOR ON) 和 set(USE_PROFILER ON) 启用嵌入式图形执行器 (embedded graph executor) 和调试功能。

    • 如需用 IR 调试,可以设置 set(USE_RELAY_DEBUG ON),同时设置环境变量 TVM_LOG_DEBUG。

  • TVM 需要 LLVM 用于 CPU 代码生成工具 (Codegen)。推荐使用 LLVM 构建。

    • 使用 LLVM 构建时需要 LLVM 4.0 或更高版本。注意,默认的 apt 中的 LLVM 版本可能低于 4.0。

    • 由于 LLVM 从源码构建需要很长时间,推荐从 LLVM 下载页面 下载预构建版本。

      1. 解压缩到某个特定位置,修改 build/config.cmake 以添加 set(USE_LLVM /path/to/your/llvm/bin/llvm-config)
      2. 或直接设置 set(USE_LLVM ON),利用 CMake 搜索一个可用的 LLVM 版本。
    • 也可以使用 LLVM Ubuntu 每日构建
      注意 apt-package 会在 llvm-config 中附加版本号。例如,如果你安装了 LLVM 10 版本,则设置 set(USE_LLVM llvm-config-10)

    • PyTorch 的用户建议设置 set(USE_LLVM "/path/to/llvm-config --link-static") 和 set(HIDE_PRIVATE_SYMBOLS ON) 以避免 TVM 和 PyTorch 使用的不同版本的 LLVM 之间潜在的符号冲突。

    • 某些支持平台上,Ccache 编译器 Wrapper 可帮助减少 TVM 的构建时间。在 TVM 构建中启用 CCache 的方法包括:

      1. Ccache 的 Masquerade 模式。通常在 Ccache 安装过程中启用。要让 TVM 在 masquerade 中使用 Ccache,只需在配置 TVM 的构建系统时指定适当的 C/C++ 编译器路径。例如:cmake -DCMAKE_CXX_COMPILER=/usr/lib/ccache/c++ ...
      2. Ccache 作为 CMake 的 C++ 编译器前缀。在配置 TVM 的构建系统时,将 CMake 变量 CMAKE_CXX_COMPILER_LAUNCHER 设置为一个合适的值。例如:cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ...
  • 构建 TVM 及相关库:

cd build
cmake ..
make -j4

可以使用 Ninja 来加速构建

cd build
cmake .. -G Ninja
ninja

在 TVM 的根目录下也有一个 Makefile,它可以自动完成其中的几个步骤: 创建构建目录,将默认的 config.cmake 复制到该构建目录下,运行 cmake,并运行 make。

构建目录可以用环境变量 TVM_BUILD_PATH 来指定。如果 TVM_BUILD_PATH 没有设置,Makefile 就会假定应该使用 TVM 里面的 build 目录。由 TVM_BUILD_PATH 指定的路径可以是绝对路径,也可以是相对于 TVM 根目录的路径。如果 TVM_BUILD_PATH 被设置为一个以空格分隔的路径列表,则将创建所有列出的路径。

如果使用另一个构建目录,那么应该在运行时设置环境变量 TVM_LIBRARY_PATH,它指向编译后的 libtvm.so 和 libtvm_runtime.so 的位置。如果没有设置,TVM 将寻找相对于 TVM Python 模块的位置。与 TVM_BUILD_PATH 不同,这必须是一个绝对路径。

# 在 "build" 目录下构建
make

# 替代位置,"build_debug"
TVM_BUILD_PATH=build_debug make

# 同时构建 "build_release" 和 "build_debug"
TVM_BUILD_PATH="build_debug build_release" make

# 使用调试构建
TVM_LIBRARY_PATH=~/tvm/build_debug python3

如果一切顺利,我们就可以去查看 Python 包的安装了。

使用 Conda 环境进行构建

Conda 可以用来获取运行 TVM 所需的必要依赖。 如果没有安装 Conda,请参照 Conda 安装指南 来安装 Miniconda 或 Anaconda。在 Conda 环境中运行以下命令:

# 用 yaml 指定的依赖创建 Conda 环境
conda env create --file conda/build-environment.yaml
# 激活所创建的环境
conda activate tvm-build

上述命令将安装所有必要的构建依赖,如 CMake 和 LLVM。 接下来可以运行上一节中的标准构建过程。

在 Conda 环境之外使用已编译的二进制文件,可将 LLVM 设置为静态链接模式 set(USE_LLVM "llvm-config --link-static")。这样一来,生成的库就不会依赖于 Conda 环境中的动态 LLVM 库。

以上内容展示了如何使用 Conda 提供必要的依赖,从而构建 libtvm。如果已经使用 Conda 作为软件包管理器,并且希望直接将 TVM 作为 Conda 软件包来构建和安装,可以按照以下指导进行:

conda build --output-folder=conda/pkg  conda/recipe
# 在启用 CUDA 的情况下运行 conda/build_cuda.sh 来构建
conda install tvm -c ./conda/pkg

在 Windows 上构建

TVM 支持通过 MSVC 使用 CMake 构建。 需要有一个 Visual Studio 编译器。VS 的最低版本为 Visual Studio Enterprise 2019

注意:查看针对 GitHub Actions 的完整测试细节,请访问 Windows 2019 Runner :

https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md

官方推荐使用 Conda 环境进行构建,以获取必要的依赖及激活的 tvm-build 环境。

运行以下命令行:

mkdir build
cd build
cmake -A x64 -Thost=x64 ..
cd ..

上述命令在构建目录下生成了解决方案文件。接着运行:

cmake --build build --config Release -- /m

构建 ROCm 支持

目前,ROCm 只在 Linux 上支持,因此所有教程均以 Linux 为基础编写的。

  • 设置 set(USE_ROCM ON),将 ROCM_PATH 设置为正确的路径。
  • 需要先从 ROCm 中安装 HIP runtime。确保安装系统中已经安装了 ROCm。
  • 安装 LLVM 的最新稳定版本(v6.0.1),以及 LLD,确保 ld.lld 可以通过命令行获取。

Python 包的安装

TVM 包

本部分介绍利用 virtualenv 或 conda 等虚拟环境和软件包管理器,来管理 Python 软件包和依赖的方法。
Python 包位于 tvm/python。安装方法有两种:

  • 方法 1

本方法适用于有可能修改代码的开发者。

设置环境变量 PYTHONPATH,告诉 Python 在哪里可以找到这个库。例如,假设我们在 /path/to/tvm 目录下克隆了 tvm,我们可以在 ~/.bashrc 中添加以下代码:这使得拉取代码及重建项目时,无需再次调用 setup,这些变化就会立即反映出来。

export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
  • 方法 2

通过 setup.py 安装 TVM 的 Python 绑定:

# 为当前用户安装 TVM 软件包
# 注意:如果你通过 homebrew 安装了 Python,那么在安装过程中就不需要 --user
#        它将被自动安装到你的用户目录下。
#        在这种情况下,提供 --user 标志可能会在安装时引发错误。
export MACOSX_DEPLOYMENT_TARGET=10.9  # 这是 mac 所需要的,以避免与 libstdc++ 的符号冲突
cd python; python setup.py install --user; cd ..

Python 依赖

注意,如果你想要安装到一个受管理的本地环境,如 virtualenv,则不需要 --user 标志。

  • 必要的依赖:
pip3 install --user numpy decorator attrs
  • 使用 RPC 跟踪器
pip3 install --user tornado
  • 使用 auto-tuning 模块
pip3 install --user tornado psutil xgboost cloudpickle

注意:在搭载 M1 芯片的 Mac 上,安装 xgboost / scipy 时可能遇到一些问题。scipy 和 xgboost 需要安装 openblas 等额外依赖。运行以下命令行,安装 scipy 和 xgboost 以及所需的依赖和配置:

brew install openblas gfortran

pip install pybind11 cython pythran

export OPENBLAS=/opt/homebrew/opt/openblas/lib/

pip install scipy --no-use-pep517

pip install xgboost

安装 Contrib 库

NNPACK Contrib 安装,查看
https://tvm.hyper.ai/docs/install/nnpack

启用 C++ 测试

可以用 Google Test 来驱动 TVM 中的 C++ 测试。安装 GTest 最简单的方法是从源代码安装:

git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install

安装成功后,可以用 ./tests/scripts/task_cpp_unittest.sh 来构建和启动 C++ 测试,或者直接用 make cpptest 构建。

以上就是本期教程–安装 TVM 的 Part 1 部分,在 Part 2 中,我们将继续讲解另外两种 TVM 安装方法:Docker 镜像安装以及 NNPACK Contrib 安装。

欢迎大家持续关注 tvm.hyper.ai,了解 TVM 中文的最佳进展!

—— 完 ——

TVM(端到端深度学习编译器)简介 算子编译器前后端引入 引入 2021.2.8 和振伟聊了关于HW OD的工作内容,深度上很好的方向, 目前纯OP的high level的设计,业界已经内卷了即难以进步。 torch已经很好用了社区也好,想从纯软件上进步很难。 而硬骨头OP在硬件上的优化比如GPU有前途但研发周期长,人才紧缺,还在缓慢发展中。 TVM是业界有名气的平台,HW的TBE对标TVM 要做一个接口在前端(各种框架)和后端(异构)。 有了前后端的经验,那么整个行业的Edge端都可以用到,市场很大。 ... 阅读详情

相关推荐

动态尺寸模型优化实践之 Shape Constraint IR Part I

主流的AI模型在部署时一般都具备不同程度的动态shape问题,比如输入图片尺寸,batch size 或者序列长度的变化等。与静态shape语义下做优化相比,在动态shape语义下做优化由于缺少具体的shape信息往往具有更大的难度。

阿里云云栖号 1113

TVM安装教程(踩坑记录)

TVM安装教程以及一些踩坑记录

m0_49339981的博客 2279

FRM一级备考笔记:构建知识体系与高效复习方法论

在金融风险管理领域,系统化知识构建是高效学习和应对复杂挑战的核心。其原理在于通过结构化方法将零散信息转化为可检索、可应用的知识网络,从而提升学习效率和理解深度。这种方法的技术价值在于,它不仅是信息整理,更是一种主动学习策略,能够促进长期记忆和知识迁移。在FRM等专业资格认证备考中,面对海量且相互关联的知识点,如风险管理基础、定量分析、巴塞尔协议等,传统的线性笔记方法往往效率低下。通过引入问题驱动、框架先行、主动重构的笔记体系,学习者可以构建个人化的知识应答系统。具体应用场景包括使用思维导图搭建概念地图、制作

weixin_34221775的博客 375

TVM概述

TVM TVM是陈天奇领导的一个DL加速框架项目。它处于DL框架(如tensorflow、pytorch)和硬件后端(如CUDA、OpenCL)之间,兼顾了前者的易用性和后者的执行效率。 官网: https://tvm.apache.org/ 代码: https://github.com/apache/tvm 论文: 《TVM: End-to-End Optimization Stack for Deep Learning》 和同类项目的差异: TFLite和ONNXRuntime只能接收特定格式的模

antkillerfarm的专栏 1万+

深度学习自动微分原理与PyTorch实战指南

自动微分(Automatic Differentiation)是现代深度学习框架的核心技术,它通过计算图的反向传播自动完成梯度计算,避免了手动推导复杂数学公式的繁琐过程。其原理基于链式法则,将数学运算分解为计算图,支持前向模式和反向模式两种实现方式。在神经网络训练中,反向模式因其适用于输入维度远大于输出维度的场景而成为主流。PyTorch的autograd模块和TensorFlow的梯度带机制都基于此技术构建。掌握自动微分不仅能深入理解框架底层原理,还能在自定义损失函数、设计新型网络层时得心应手。实际工程中

weixin_34297704的博客 372

【TVM系列二】TVM介绍

文章同步更新在公众号 AIPlayer,欢迎扫码关注,共同进步 目录 一、TVM的工作流程 1、整体流程 2、关键数据结构 3、Transformations 4、搜索空间和基于机器学习的转换 5、目标代码转化 二、逻辑架构组件 三、运行TVM实例 1、交叉编译runtime 2、编译模型 3、运行模型 四、总结 一、TVM的工作流程 TVM主要由两个部分组成: (1)TVM编译器:负责编译和优化模型 (2)TVM runtime:提供目标设备上运行模型的API ..

Flying Cat 6695

TVM 从入门到精通 | 安装 TVM (Part 2)

By 超神经内容一览:TVM 共有三种安装方法:从源码安装、使用 Docker 镜像安装和 NNPACK Contrib 安装。本文讲解如何通过 Docker 镜像 和 NNPACK Contrib 安装。

HyperAI超神经 1283

Python数据分析案例——宏观经济指标与沪深指数实证研究分析

沪深300指数与宏观经济指标关联性研究:2015-2024实证分析 摘要:本文基于2015-2024年月度数据,采用多元回归方法分析宏观经济指标对沪深300指数的影响。研究发现,市场情绪(SEN)、美国利率(STY)、美元指数(DXY)、狭义货币供应量(M1)和CPI对指数具有显著解释力(P<0.05),而GDP、LPR等传统指标影响不显著。模型解释力达62%(R²=0.62),表明A股短期走势更受资金流动、投资者心理和国际金融条件驱动。研究为投资者提供了除基本面外的市场预判指标,建议关注M1增速、美

weixin_50902344的博客 1404

TVM 集成 Xilinx Vitis AI:从 Docker 环境搭建到 DPU 模型编译与边缘推理实战指南

本文基于 TVM 官方文档 [docs/how_to/deploy/vitis_ai.rst](https://link.gitcode.com/i/a7aebaea66a015633375c1939a8307a3) 及仓库源码,系统讲解如何在 TVM 中启用 Xilinx Vitis AI 后端,将神经网络模型编译并部署到 Zynq、Alveo、Versal 等 FPGA/ACAP 平台的 DP

gitblog_00304的博客 807

基于CANoe的Basic Diagnostics ECU (UDS)

基于CANoe的Basic Diagnostics ECU (UDS)

farmer00的博客 9153

【STABLE_BASELINE3】强化学习算法实战:模型的保存,读取,再训练

STABLE-BASELINE3,模型读取,再训练:有时候需要在已经训练好的模型基础上进行再次训练。

Kiek17的博客 4868

在 JAX 中调用 FlashInfer GPU Kernel:jax-tvm-ffi 三步桥接实战指南

本文以 FlashInfer 官方教程 [docs/tutorials/jax_tvm_ffi/README.rst](https://link.gitcode.com/i/c92c687ecaffb3ae8c774c5bfab4040b) 及其两份规范源码([flashinfer_jax_tvm_ffi.py](https://link.gitcode.com/i/89f124df9c71a24

gitblog_00823的博客 213

告别手册!S32K3XX的eMIOS实战:从GPT定时到PWM输出,一个通道搞定电机控制

本文深入探讨了NXP S32K3XX系列MCU的eMIOS模块在电机控制中的高效应用。通过单通道实现PWM生成、输入捕获和定时中断三大功能,展示了如何简化BLDC电机控制硬件设计。文章结合RTD库与寄存器级编程,提供动态模式切换和性能优化方案,显著降低CPU负载。

weixin_42522374的博客 147

TVM Relax抽象层深度解析:从Relay到下一代编译IR

中间表示(IR)是深度学习编译器的核心抽象层,它决定了图优化与代码生成的边界。传统静态图IR受限于变量不可变和粗粒度算子,难以高效表达复杂控制流与精细优化。TVM推出的Relax应运而生,通过引入可变变量、DataflowBlock与BindingBlock分层、纯度标注等机制,重新定义了计算意图与实现细节的边界。这种抽象不仅让图优化pass获得更安全的改写能力,还为算子融合、内存复用等场景提供了更大自由度。在实际部署中,Relax能够灵活处理动态shape、自定义融合策略以及与TensorIR的衔接(如c

weixin_33875839的博客 375

【Pytorch】DCGAN实战(三):二次元动漫头像生成

文章目录1.实现效果2.环境配置2.1Python2.2Pytorch、CUDA2.3Python IDE3.具体实现3.1数据预处理(data.py)(1)导入包(2)定义数据类3.2模型Generator,Discriminator,权重初始化(model.py)(1)导入包(2)Generator(3)Discriminator(4)权重初始化3.3网络训练(net.py)(1)导入包(2)创建类3.4 主函数(main.py)(1)导入文件(2)定义超参数(3)实例化(4)进行训练4.训练过程4.1

qq_44031210的博客 4918

基于FreeRTOS与MQTT的物联网技术应用系列——步进电机控制(三)SD卡驱动、FatFS等的移植和ini配置文件读取的实现

本文实现了基于STM32F107VC的金牛开发板的基于SPI模式的SD卡驱动和FatFS的移植,以及利用minini库对ini配置信息文件进行读取。

sqshining的专栏 2137

MCP协议重构AI开发流:PyTorch入门、TVM部署与顶会复现一体化实践

AI开发长期面临环境配置复杂、模型部署难、论文复现低效三大瓶颈。MCP(Model Control Protocol)作为类HTTP的标准化通信协议,将模型调用从代码层抽象为可组合、可插件化的协议层,实现跨框架、跨硬件的服务编排;PyTorch for Beginners教程直击CUDA配置失败率高达37%的现实痛点,以CPU优先、torch.compile加速等务实路径降低入门门槛;TVM部署指南则聚焦边缘落地中的内存碎片、量化失效、热更新等工业级挑战。三者协同构成‘训-推-用-复现’全链路闭环,广泛应用

weixin_34049948的博客 344

(2-4-01)目标检测与分割:地面提取(1)

请看下面的例子,生成了虚拟 LiDAR 点云数据,然后使用 DBSCAN 聚类方法进行 LiDAR 地面提取,并根据聚类结果可视化地面和非地面点云。首先生成虚拟 LiDAR 点云数据,然后基于设定的高程阈值进行地面提取,并通过 Open3D 可视化地面和非地面点云。地面提取是LiDAR(激光雷达)数据处理中的一个重要步骤,其目标是从点云数据中分离出地面点,即地面表面上的点。LiDAR点云数据通常包含地面点和非地面点(例如建筑物、树木等),地面提取的目标是从这些点中准确识别和提取地面点。

码农三叔 702

动态尺寸模型优化实践之Shape Constraint IR Part I

在本系列分享中我们将介绍BladeDISC在动态shape语义下做性能优化的一些实践和思考。本次分享的是我们最近开展的有关shape constraint IR的工作

科技很有意思 1096

MATLAB应用实战系列(七十七)-基于长时间序列栅格数据的MK检验

1 MK检验介绍 MK检验是曼-肯德尔法,又称Mann—Kenddall 检验法,是一种气候诊断与预测技术,应用Mann-Kendall检验法可以判断气候序列中是否存在气候突变,如果存在,可确定出突变发生的时间。Mann-Kendall检验法也经常用于气候变化影响下的降水、干旱频次趋势检测。目前常用于长时间序列的栅格数据的显著性检验,在植被覆盖度,NDVI,NPP等方面尤为常见。 该检验功能强大,不需要样本遵从一定的分布,部分数据缺失不会对结果造成影响,不受少数异常值的干扰,适用性强。不但可以检验时

wenyusuran的专栏 6291

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一个适配层打通多云对象存储:gat 远程传输架构与性能优化全解

gat 是一款面向 git 的简单、快速的大文件对象存储与版本控制工具:它把大文件字节放到 S3、Azure Blob、GCS、阿里云 OSS 等对象存储中,git 只负责提交一份小小的 `gat.lock` 锁文件。本文将带你拆解 gat 如何用同一个 OpenDAL 适配层打通多云存储,以及它内置的传输调优机制和可用的性能优化项。 ## 🌐 一个 URL 方案,五种云存储 gat 的定位

gitblog_00339的博客 856

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CANN ops-math DiagPart 算子深度解析:对角提取原理、配置约束与图模式调用实战

DiagPart 是 CANN ops-math 数学算子库中用于提取张量对角线元素的算子,网络侧通过它可以高效地把批处理张量的"批量对角部分"抽取出来(如批量方阵的对角线集合)。本文以 [math/diag_part/README.md](https://link.gitcode.com/i/c910e0239a5eff6a9b4771734b066908) 为主体,结合该算子在本仓库中的算子定

gitblog_00402的博客 144

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ML模型服务化实战:从Notebook到生产级Kubernetes部署

机器学习模型服务化(Model Serving)是将训练好的模型转化为稳定、可观测、可扩展API的关键环节,其核心在于解决实验代码与生产系统之间的范式断层。不同于本地Jupyter环境的探索性开发,生产服务需满足弹性伸缩、故障隔离、流量治理与全链路可观测等工程要求。技术原理上,它依赖Kubernetes编排、ONNX格式标准化、Istio流量控制及Prometheus指标采集等基础设施协同;其技术价值体现在降低运维成本、提升模型迭代效率、保障业务SLA,并支撑AB测试、金丝雀发布等高级发布策略。典型应用场景

weixin_34032792的博客 393

机器学习生产化实战:模型服务化与MLOps四层解耦架构

机器学习模型从开发到生产并非简单部署,而是涉及模型服务化、可观测性、持续交付与数据-模型联合监控的系统工程。其核心在于解决环境不一致、特征漂移、推理延迟、灰度发布与根因定位等真实产线问题。技术原理上需融合ONNX模型封装、Istio服务编排、三级告警漏斗及语义化CI/CD流水线,以构建可审计、可回溯、可压测的生产就绪服务单元。该能力直接支撑金融风控、工业预测性维护等高SLA场景,并向边缘计算与联邦学习延伸。本文聚焦MLOps落地中最具实操价值的分层解耦设计与硬核调优细节。

weixin_34293141的博客 412

Triton模型服务化实战:从Notebook到高可用生产环境

模型服务化(Model Serving)是机器学习工程落地的核心环节,其本质是将训练好的模型封装为稳定、低延迟、可监控的API服务。它依赖MLOps体系支撑,涵盖模型版本管理、资源弹性调度、输入输出契约定义与推理可观测性等关键技术维度。在真实生产环境中,80%的故障源于数据漂移、特征不一致或服务契约模糊,而非计算性能瓶颈。因此,构建健壮的模型服务,需优先保障推理稳定性、建立Schema-First的数据管道,并选用支持多框架、多版本、硬件异构的推理服务器(如NVIDIA Triton)。本文聚焦金融、工业、

weixin_34408624的博客 328
上一篇: Meta 内部都在用的 FX 工具大起底:利用 Graph Transformation 优化 PyTorch 模型
下一篇: PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数
HyperAI超神经
博客等级 码龄7年 8872粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值