tvm实战踩坑

news2024/10/6 18:28:18

今天玩了一下tvm的安装
我要安装v0.14.0的版本
所以按照官网的方法
https://tvm.apache.org/docs/install/from_source.html#python-package-installation

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

recursive是很重要的
这一步可以替换成gitee的网址
然后我修改了.gitsubmodule文件
大家可以参考

[submodule "dmlc-core"]
	path = 3rdparty/dmlc-core
	url = https://github.com/dmlc/dmlc-core.git
[submodule "dlpack"]
	path = 3rdparty/dlpack
	url = https://github.com/dmlc/dlpack.git
[submodule "3rdparty/rang"]
	path = 3rdparty/rang
	url = https://github.com/agauniyal/rang.git
[submodule "3rdparty/vta-hw"]
	path = 3rdparty/vta-hw
	url = https://github.com/apache/tvm-vta.git
[submodule "3rdparty/libbacktrace"]
	path = 3rdparty/libbacktrace
	url = https://github.com/tlc-pack/libbacktrace.git
[submodule "3rdparty/cutlass"]
	path = 3rdparty/cutlass
	url = https://github.com/NVIDIA/cutlass.git
[submodule "3rdparty/OpenCL-Headers"]
	path = 3rdparty/OpenCL-Headers
	url = https://github.com/KhronosGroup/OpenCL-Headers.git
[submodule "3rdparty/cnpy"]
	path = 3rdparty/cnpy
	url = https://github.com/rogersce/cnpy.git
[submodule "3rdparty/cutlass_fpA_intB_gemm"]
	path = 3rdparty/cutlass_fpA_intB_gemm
	url = https://github.com/tlc-pack/cutlass_fpA_intB_gemm
[submodule "3rdparty/libflash_attn"]
	path = 3rdparty/libflash_attn
	url = https://github.com/tlc-pack/libflash_attn

这些第三方库下载完毕之后

开始build
首先要cp cmake的config.cmake到build文件夹下
修改里面的配置
在这里插入图片描述
我反正是都上齐活了
然后.bashrc上面加上这一句
之后直接cmake…
make -j4开始构建

构建成功
参考下面的method1

export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}

把这两段放bashrc

调出python
import tvm就好啦
这时候你会发现有一些日志
如果你不喜欢这些日志

echo 'export TVM_LOG_DEBUG=0' >> ~/.bashrc
echo 'export TVM_LOG_INFO=0' >> ~/.bashrc
echo 'export TVM_LOG_WARNING=0' >> ~/.bashrc
source ~/.bashrc

尝试使用一下tvm
首先下载resnet50-v2-7.onnx

然后编译它

import onnx
import tvm
from tvm import relay

# Load the ONNX model
onnx_model = onnx.load("resnet50-v2-7.onnx")

# Convert ONNX model to Relay IR
shape_dict = {"data": (1, 3, 224, 224)}
mod, params = relay.frontend.from_onnx(onnx_model, shape_dict)

# Target configuration
target = tvm.target.cuda()

# Compile the model
with tvm.transform.PassContext(opt_level=3):
    lib = relay.build(mod, target, params=params)

# Export the compiled model as a shared library
lib.export_library("resnet50.so")

这样获得了resnet50.so
尝试读取

import tvm
 tvm.runtime.Module = tvm.runtime.load_module("resnet50.so")

成功

fmlab
~/tvm1/test/resnet50Trans.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯软件测试第十五届蓝桥杯模拟赛1期题目解析

PS 需要第十五界蓝桥杯模拟赛1期功能测试模板、单元测试被测代码、自动化测试被测代码请加🐧:1940787338 备注:15界蓝桥杯省赛软件测试模拟赛1期 题目1 功能测试用例1(测试用例)(15分) 【前期准备】 按步…

优化查询性能:DolphinDB 时间类型数据比较规则详解

在数据库中,时间是一种常见的数据类型。在处理时间数据时,比较操作是非常常见的需求。然而,在不同的场景下,对时间类型数据进行比较时应用的规则不同。本文将从 DolphinDB 支持的时间类型开始,由浅入深分别介绍时间类型…

鸿蒙轻内核A核源码分析系列六 MMU协处理器(2)

3、MMU汇编代码 在arch\arm\arm\include\arm.h文件中,封装了CP15协处理器相关的寄存器操作汇编函数。我们主要看下MMU相关的部分。 3.1 CP15 C2 TTBR转换表基地址寄存器 代码比较简单,结合下图,自行查看即可。该图来自《ARM Cortex-A9 Tec…

minIo ubuntu单节点部署

资源准备 minio二进制包 下载地址:https://dl.min.io/server/minio/release/linux-amd64/minio ubuntu-单节点部署 选择一台ubuntu18.04机器10.253.9.41、intel 或者 amd 64位处理器 上传minio到~目录 sudo cp minio /usr/local/bin/ sudo chmod x /usr/local/bin/minio 设…

python pip下载镜像

官网:python https://pypi.python.org/simple 阿里: pip install -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com packagename 腾讯: pip install -i https://mirrors.cloud.tencent.com/pypi/simple --tr…

CC攻击的有效应对方案

随着互联网的发展,网络安全问题愈发突出。CC攻击(Challenge Collapsar Attack),一种针对Web应用程序的分布式拒绝服务(DDoS)攻击方式,已经成为许多网络管理员和网站拥有者不得不面对的重大挑战。…

reGeorg隐秘隧道搭建

reGeorg隐秘隧道搭建 【实验目的】 通过学习reGeorg与Proxifier工具使用,实现外网攻击端连接内网主机远程桌面。 【知识点】 python、reGeorg、proxifier。 【实验原理】 在内网渗透中,由于防火墙的存在,导致无法对内网直接发起连接&#xff…

Java中List流式转换为Map的终极指南

哈喽,大家好,我是木头左! 在Java编程中,经常需要将一个List对象转换为另一个Map对象。这可能是因为需要根据List中的元素的某些属性来创建一个新的键值对集合。在本文中,我将向您展示如何使用Java 中的流式API轻松地实…

机器学习:数据分布的漂移问题及应对方案

首先,让我们从一位高管告诉我的一个故事开始,很多读者可能对此感同身受。 大约两年前,他的公司聘请了一家咨询公司开发一个机器学习模型,帮助他们预测下周每种食品杂货需要多少,以便他们可以相应地补货。这家咨询公司…

【SQL边干边学系列】08高级问题-4

文章目录 前言回顾高级问题48.客户分组49.客户分组-修复null50.使用百分比的客户分组51.灵活的客户分组 答案48.客户分组49.客户分组-修复null50.使用百分比的客户分组51.灵活的客户分组 未完待续 前言 该系列教程,将会从实际问题出发,边干边学&#xff…

qmt量化交易策略小白学习笔记第29期【qmt编程之获取行业概念数据--如何下载板块分类信息及历史板块分类信息】

qmt编程之获取行业概念数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 获取行业概念数…

在typora中利用正则表达式,批量处理图片

一,png格式 在 Typora 中批量将 HTML 图片标签转换为简化的 Markdown 图片链接,且忽略 alt 和 style 属性,可以按照以下步骤操作: 打开 Typora 并加载你的文档。按下 Ctrl H(在 Windows/Linux 上)或 Cmd…

【NOI-题解】1389 - 数据分析1750 - 有0的数1457 - 子数整除1121 - “倒”数1962. 数值计算

文章目录 一、前言二、问题问题:1389 - 数据分析问题:1750 - 有0的数问题:1457 - 子数整除问题:1121 - “倒”数问题:1962. 数值计算 三、感谢 一、前言 本章节主要对循环中带余除法部分题目进行讲解,包括…

CV预测:快速使用LeNet-5卷积神经网络

AI预测相关目录 AI预测流程,包括ETL、算法策略、算法模型、模型评估、可视化等相关内容 最好有基础的python算法预测经验 EEMD策略及踩坑VMD-CNN-LSTM时序预测对双向LSTM等模型添加自注意力机制K折叠交叉验证optuna超参数优化框架多任务学习-模型融合策略Transform…

2024年先进算法与人机交互国际会议(ICCHSE 2024)

2024 International Conference on Advanced Algorithms and Human Computer Interaction 【1】大会信息 会议简称:ICAAHIE 2024 大会时间:2024-07-19 大会地点:中国桂林 截稿时间:2024-07-05(以官网为准) 审稿通知&a…

Ajax的应用

1. Ajax Ajax是Asynchronous Javascript And XML(异步JavaScript和XML)的缩写。 Ajax技术描述了使用脚本操纵HTTP和Web服务器进行数据交换,在页面不刷新的情况下,实现页面的局部更新。 重点: Ajax 是一种在无需重新加…

服务器再升级!64线程服务器震撼上线,全新渲染体验等你来解锁

秉承着 “科技赋能创意,连接创造价值”的使命, 经过精心的策划和筹备, 蓝海创意云 64线程服务器, 以全新的面貌,优惠的价格, 与大家见面了! 诚邀您一起,解锁全新的渲染体验&am…

如何利用AI绘图,生成同一人物(最好为二次元)的不同动作和不同表情的图片?

Ai绘画有一个很现实的问题,要保证每次画出的都是同一个人物的话,很费劲。 Midjourney就不必说了,人物的高度一致性一直得不到很好的解决。而在Stable Diffusion(SD)中,常用办法是通过同一个Seed值&#xf…

Android低代码开发 - InputMenuPanelItem详解

我们知道MenuPanel是一个菜单面板容器,它里面可以放各式各样的菜单和菜单组。今天我们就来详细讲解输入菜单这个东西。 InputMenuPanelItem源码 package dora.widget.panel.menuimport android.content.Context import android.text.Editable import android.text…

KEYSIGHT N1000A 采样示波器 支持哪些类型的示波器模块?

N1000A Keysight 高性能宽带宽示波器,它支持多种类型的模块,这些模块可以根据用户的需求进行选择和配置,以执行精密的光学、电气和TDR/TDT/S参数分析。以下是一些支持的模块类型: 光通信模块:这些模块支持深入的收发信…