网站建设案例 杭州远大网站安全建设目的是

张小明 2026/1/11 5:00:54
网站建设案例 杭州远大,网站安全建设目的是,高校网站建设 调查,那里建设网站好TVM 现已更新到 0.21.0 版本#xff0c;TVM 中文文档已经和新版本对齐。 Apache TVM 是一个深度的深度学习编译框架#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →Apache TVM 作者#xff1a;Ziheng Jiang、Lianmin Zheng 本教程介绍了…TVM 现已更新到 0.21.0 版本TVM 中文文档已经和新版本对齐。Apache TVM 是一个深度的深度学习编译框架适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →Apache TVM作者Ziheng Jiang、Lianmin Zheng本教程介绍了在 TVM 中使用交叉编译与 RPC 进行远程设备执行的方法。通过交叉编译与 RPC你可以在本地机器上编译程序并在远程设备上运行。这对于资源有限的远程设备如 Raspberry Pi 或移动平台非常有用。本教程将以 Raspberry Pi 作为 CPU 示例以 Firefly-RK3399 作为 OpenCL 示例。在设备上构建 TVM Runtime​第一步是在远程设备上构建 TVM 运行时。备注本节与下一节中的所有命令都应在目标设备例如 Raspberry Pi 上执行。我们假设目标设备运行的是 Linux 系统。由于编译工作是在本地机器上完成的远程设备仅用于运行生成的代码因此只需要在远程设备上构建 TVM 的运行时部分。git clone --recursive https://github.com/apache/tvm tvm cd tvm make runtime -j2成功构建运行时后需要在~/.bashrc文件中设置环境变量。可以使用vi ~/.bashrc编辑~/.bashrc并添加以下行假设你的 TVM 路径为~/tvmexport PYTHONPATH$PYTHONPATH:~/tvm/python然后执行source ~/.bashrc命令以更新环境变量在设备上启动 RPC 服务端​在远程设备上如 Raspberry Pi 运行以下命令以启动 RPC 服务器python -m tvm.exec.rpc_server --host 0.0.0.0 --port9090如果你看到如下输出说明 RPC 服务器已成功启动INFO:root:RPCServer: bind to 0.0.0.0:9090在本地机器上声明并交叉编译内核​备注现在回到本地机器假设本地已完整安装了 TVM带 LLVM 支持。在本地机器上声明一个简单的计算内核import numpy as np import tvm from tvm import te from tvm import rpc from tvm.contrib import utils n tvm.runtime.convert(1024) A te.placeholder((n,), nameA) B te.compute((n,), lambda i: A[i] 1.0, nameB) mod tvm.IRModule.from_expr(te.create_prim_func([A, B]).with_attr(global_symbol, add_one))然后进行交叉编译。对于 Raspberry Pi 3B目标应为「llvm -mtriplearmv7l-linux-gnueabihf」但为了方便在网页构建服务器上运行示例这里使用「llvm」作为默认目标。详细事项可参考下一块。local_demo True if local_demo: target llvm else: target llvm -mtriplearmv7l-linux-gnueabihf func tvm.compile(mod, targettarget) # 将库保存到临时目录 temp utils.tempdir() path temp.relpath(lib.tar) func.export_library(path)备注如果要使用真实的远程设备运行此教程请将local_demo设置为 False并将target替换为适用于你设备的目标三元组。不同设备的目标三元组可能有所不同。例如对于 Raspberry Pi 3B目标三元组是「llvm -mtriplearmv7l-linux-gnueabihf」对于 RK3399目标三元组是「llvm -mtripleaarch64-linux-gnu」。你可以通过在目标设备上运行gcc -v来查询其目标三元组查看输出中以Target:开头的行但这也可能只是一个宽松的配置。除了-mtriple你还可以设置其他编译选项例如-mcpu指定要生成代码的具体芯片。默认情况下会根据目标三元组推断并自动检测-mattra1,a2,-a3,…覆盖或控制目标的具体属性例如是否启用 SIMD 操作。默认属性由当前 CPU 决定你可以运行以下命令查看支持的属性llc -mtriple -mattrhelp这些选项与 llc 工具 保持一致。建议设置目标三元组和特性集以包含具体设备可用的功能以充分发挥硬件性能。更多交叉编译属性详见 LLVM 跨平台编译文档。通过 RPC 远程运行 CPU 内核​本节展示如何在远程设备上运行生成的 CPU 内核。首先我们需要从远程设备获取一个 RPC 会话if local_demo: remote rpc.LocalSession() else: # 以下是我的环境请替换为你的目标设备的 IP 地址 host 10.77.1.162 port 9090 remote rpc.connect(host, port)接下来将生成的库上传到远程设备然后调用设备上的编译器进行重新链接。此时func就是一个远程模块对象。remote.upload(path) func remote.load_module(lib.tar) # 在远程设备上创建数组 dev remote.cpu() a tvm.runtime.tensor(np.random.uniform(size1024).astype(A.dtype), dev) b tvm.runtime.tensor(np.zeros(1024, dtypeA.dtype), dev) # 函数将在远程设备上运行 func(a, b) np.testing.assert_equal(b.numpy(), a.numpy() 1)当你想评估内核在远程设备上的性能时需要避免网络传输带来的开销。time_evaluator返回一个远程函数该函数会运行多次并测量每次执行的耗时不包括网络延迟time_f func.time_evaluator(func.entry_name, dev, number10) cost time_f(a, b).mean print(%g secs/op % cost)输出1.452e-07 secs/op通过 RPC 远程运行 OpenCL 内核​对于远程 OpenCL 设备整体流程和前面几乎一致定义内核、上传文件并通过 RPC 运行。备注Raspberry Pi 不支持 OpenCL以下代码在 Firefly-RK3399 上测试通过。你可以参考这个 教程 设置 RK3399 的操作系统和 OpenCL 驱动。同时需要在 RK3399 上启用 OpenCL 构建 TVM 运行时。在 TVM 根目录下执行cp cmake/config.cmake . sed -i s/USE_OPENCL OFF/USE_OPENCL ON/ config.cmake make runtime -j4以下函数展示了如何远程运行一个 OpenCL 内核def run_opencl(): # 注意这是我 rk3399 的设置请根据你的设备环境进行修改 opencl_device_host 10.77.1.145 opencl_device_port 9090 target tvm.target.Target(opencl, hostllvm -mtripleaarch64-linux-gnu) # 创建上述「加一」计算的调度 mod tvm.IRModule.from_expr(te.create_prim_func([A, B])) sch tvm.tir.Schedule(mod) (x,) sch.get_loops(blocksch.get_block(B)) xo, xi sch.split(x, [None, 32]) sch.bind(xo, blockIdx.x) sch.bind(xi, threadIdx.x) func tvm.compile(sch.mod, targettarget) remote rpc.connect(opencl_device_host, opencl_device_port) # 导出并上传 path temp.relpath(lib_cl.tar) func.export_library(path) remote.upload(path) func remote.load_module(lib_cl.tar) # 运行 dev remote.cl() a tvm.runtime.tensor(np.random.uniform(size1024).astype(A.dtype), dev) b tvm.runtime.tensor(np.zeros(1024, dtypeA.dtype), dev) func(a, b) np.testing.assert_equal(b.numpy(), a.numpy() 1) print(OpenCL test passed!)总结​本教程完整展示了 TVM 中交叉编译和 RPC 功能的使用流程在远程设备上设置 RPC 服务器在本地设置目标设备的交叉编译配置通过 RPC API 上传并远程运行内核程序。可右键另存为下载。下载 Jupyter notebook:cross_compilation_and_rpc.ipynb下载 Python 源码:cross_compilation_and_rpc.py下载压缩包:cross_compilation_and_rpc.zip
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

中国建设银行淮南分行网站星子网易云

输入法词库转换完全指南:跨平台词库同步解决方案 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 在日常工作和生活中,我们经常面临输入法词库…

张小明 2026/1/8 14:41:01 网站建设

免费seo网站自动推广产品备案号查询官网

Conda创建虚拟环境并切换至Python 3.8 在机器学习和数据科学项目中,不同框架对Python版本的要求常常不一致——你可能正在复现一个基于PyTorch 1.7的旧项目,而新实验又需要用到TensorFlow 2.6。这时如果系统只装了一个Python版本,依赖冲突几乎…

张小明 2025/12/28 14:46:01 网站建设

最牛html5网站建设搜索引擎

高级Shell编程与正则表达式实用指南 1. 杂项实用工具 在处理文件时,不同操作系统的文件结构可能存在差异。当需要在UNIX系统和非UNIX系统之间进行文件转换时,可以使用 dd 命令。例如,某些系统要求文件以固定大小的块序列形式组织,或者使用与ASCII不同的字符集。 dd 命…

张小明 2025/12/21 23:02:52 网站建设

苏州网站网络推广陕西企业营销型网站

Unix 环境配置:bash、ksh 和 csh 详细指南 1. 更改 bash 提示符 在 Unix 系统中,默认的 bash 提示符可能只是一个美元符号($),或者是美元符号和日期等信息。你可以根据自己的需求自定义提示符,以包含对自己有用的信息。 1.1 bash 提示符类型 bash 中有两种提示符: …

张小明 2025/12/21 23:00:50 网站建设

化工建网站多少费用蚌埠城乡建设 局网站

当轴向磁通电机被用于新能源汽车轮毂、人形机器人甚至低空飞行器时,一个反复被提及的问题:运行中产生的热量难以有效导出。甚至认为,散热已成为这项“旧技术新工艺”走向大规模应用的大瓶颈。作为一家专注于电机智能装配装备研发与生产的企业…

张小明 2025/12/26 18:57:02 网站建设

山东军辉建设集团有限公司 公司网站网址免费做房产网站

1. 参数化测试概述与价值参数化测试是JUnit 5框架的核心功能之一,它允许测试方法通过不同的参数集合多次运行。对于软件测试从业者而言,这种测试方式具有三重价值:测试覆盖率提升:单次测试定义即可验证多种输入场景代码冗余消除&a…

张小明 2025/12/21 22:54:45 网站建设