当前位置: 首页 > web >正文

python调用底层c++算子示例

test.cpp

#include <torch/extension.h>// 定义一个简单的加法函数
at::Tensor add(at::Tensor a, at::Tensor b) {return a + b;
}PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {m.def("add", &add, "Add two tensors");
}

test.py

import torch
from torch.utils.cpp_extension import loadtest_load = load(name='test_load', sources=['test.cpp'],extra_cflags=['-O2'],verbose=True,
)
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = test_load.add(a, b)
print(result)  # Should print tensor([5, 7, 9])

注意:load中name实际上传给test.cpp中TORCH_EXTENSION_NAME, 会编译生成一个test_load.so 动态库

test2.py:调用test.py中test_load模块

from test import test_load
import torch
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = test_load.add(a, b)
print(result)  # Should print tensor([5, 7, 9])
http://www.xdnf.cn/news/8140.html

相关文章:

  • 计算机三级数据库免费题库
  • docker 启动一个python环境的项目dockerfile版本
  • vite搭建vue3项目及相关配置
  • LLM推理加速技术如何迁移到传统 Transformer 模型(ASR)
  • 深入详解 DICOM 二维图像的空间定位原理
  • idea添加jar包
  • 《深度掌控Linux:openEuler、CentOS、Debian、Ubuntu的全方位运维指南》
  • STM32:0.96寸OLED屏驱动全解析——SSD1306 I2C通信与显存配置指南
  • 无人机影像水面拼接、海面拼接
  • 146.LRU缓存-图解LRU
  • Axure项目实战:智慧运输平台后台管理端-运单管理
  • 华为Cangjie编程技术深度解析(续篇1)
  • 手机入网时长查询接口:精准风控与用户运营的智能利器
  • 【软考向】Chapter 3 数据结构
  • C++线程池----基于生产者消费者模式队列实现
  • 线性代数:AI大模型的数学基石
  • 遨游三防科普:三防平板是什么?有什么特殊功能?
  • ObservableCollection序列化,和监听链表内元素变化
  • nginx动态控制前端版本
  • FPGA通信之VGA
  • 塔能科技:工厂能耗精准节能全方位解决方案
  • 高效缓存设计的哲学
  • 基于科大讯飞语音识别组件(Vue3)
  • PyInstaller 如何在mac电脑上生成在window上可执行的exe文件
  • AI 招聘系统科普:如何辨别真智能与伪自动化
  • 什么是VR实景?有哪些高价值场景?
  • 微信小程序学习基础:从入门到精通
  • 5G 网络中 DNN 的深度解析:从基础概念到核心应用
  • NMEA定位测试,硬件验证
  • 【工具】Quicker/VBA|PPT 在指定位置添加参考线