ATen(A TENsor library for C++11)剖析(1)
C10,来自于Caffe Tensor Library的缩写
ATen,来自于 A TENsor library for C++11的缩写
c10_utils.h
#pragma once#include <ATen/core/dispatch/Dispatcher.h>template <class... Inputs>
inline std::vector<c10::IValue> makeStack(Inputs&&... inputs) {return {std::forward<Inputs>(inputs)...};
}template <class... Args>
inline std::vector<c10::IValue> callOp(const c10::OperatorHandle& op,Args... args) {auto stack = makeStack(std::forward<Args>(args)...);c10::Dispatcher::singleton().callBoxed(op, &stack);return stack;
}template <class... Args>
inline std::vector<c10::IValue> callOp(const char* func_name,const char* overload_name,Args... args) {const c10::optional<c10::OperatorHandle> op_handle =c10::Dispatcher::singleton().findSchema({func_name, overload_name});assert(op_handle.has_value());return callOp(op_handle.value(), args...);
}
Macros.h
#pragma once
#include <c10/macros/Macros.h>
Array.h
#pragma once// A fixed-size array type usable from both host and
// device code.#include <c10/macros/Macros.h>namespace at { namespace detail {template <typename T, int size>
struct alignas(16) Array {T data[size];C10_HOST_DEVICE T operator[](int i) const {return data[i];}C10_HOST_DEVICE T& operator[](int i) {return data[i];}
#ifdef __HIP_PLATFORM_HCC__C10_HOST_DEVICE Array() = default;C10_HOST_DEVICE Array(const Array&) = default;C10_HOST_DEVICE Array& operator=(const Array&) = default;
#elseArray() = default;Array(const Array&) = default;Array& operator=(const Array&) = default;
#endif// Fill the array with x.C10_HOST_DEVICE Array(T x) {for (int i = 0; i < size; i++) {data[i] = x;}}
};}}
ATen(A TENsor library for C++11)剖析(1)相关推荐
- main() 函数解析(一)——Linux-0.11 剖析笔记(六)
文章目录 1. 宏定义`_syscall0` 2. `setup.s`读取的参数 3. 读取CMOS实时时钟信息 3.1 `outb_p(value,port)` 3.2 `inb_p(port)` ...
- setup.s 总结——Linux-0.11 剖析笔记(四)
上一篇文章 setup.s 解读--Linux-0.11 剖析笔记(三) 详细地解释了 setup.s 的代码,整个代码完成的任务有: 获取一些参数保存在 0x90000 处 保存光标的位置 获取从 ...
- setup.s 解读——Linux-0.11 剖析笔记(三)
题目:setup.s 解读--Linux-0.11 剖析笔记(三) 更新记录 版本 时间 修订内容 1.0 2018-4-14 增加了"获取显示模式"这一节,AL取值的表格 2.0 ...
- Could not load dynamic library ‘libcusolver.so.11‘; dlerror: libcusolver.so.11: cannot open shared o
Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared o ...
- bootsect.s 解读——Linux-0.11 剖析笔记(二)
题目:bootsect.s 解读--Linux-0.11 剖析笔记(二) 文章目录 一些符号常量 老式Linux设备号的命名规则 bootsect 把自己搬运到 0x90000,并跳转 加载 setu ...
- OGG升级运行ggsic报Unable to find library 'libclntsh.so.11.1'
我们系统是2009年建立的Oracle 10.2.0.5 for hp-ux ia64 11.31,目前需要进行号码核对的创建,对接成功后废除旧系统,使用的同步复制软件为Oracle Goldenga ...
- head.s 剖析——Linux-0.11 剖析笔记(五)
文章目录 一.加载段寄存器 LSS指令 二.设置中断描述符表(IDT) 中断处理过程 `ignore_int` 三.设置全局描述符表(GDT),加载 GDTR 四.重新加载段寄存器 五.检测A20是否 ...
- bootsect.s 预备——Linux-0.11 剖析笔记(一)
文章目录 boot 目录下文件介绍 16 位代码是什么意思 计算机启动过程 Linux 0.11 启动过程 boot 目录下文件介绍 boot 目录中一共有三个文件,都是用汇编语言写的,如下图(图来自 ...
- Pytorch源码分析
目录 命名空间/类/方法/函数/变量 torch.autograd.Function中的ctx参数 DDP(DistributedDataParallel)的构造函数 torch.floor(inpu ...
最新文章
- 数据结构-js实现栈和队列
- junit数据驱动测试_使用Junit和Easytest进行数据驱动的测试
- 手把手教你用Python求均值、中值和众数
- linux每日一练:Enable multithreading to use std::thread: Operation not permitted问题解决
- vue项目接入高拍仪
- 组策略管理(关闭UAC)
- 法学生民法方面的论文选题,有什么推荐吗?
- 2015年4月21日---开始写自己的专业博客啦
- 苹果未能与恢复服务器取得联系解决
- u盘连接计算机无法识别usb设备,u盘插电脑显示:跟这台计算机连接的前一个USB设备工作不正常,windows无法识别它。...
- 后台模板vue-admin-template的安装
- java大数据培训专业课程与教学模式的介绍
- OpenCV模板匹配和轮廓处理
- NER任务的精确评估指标P、R、F1
- 高德citycode和国家citycode编码转换
- 【带你看看开源圈的新趋势】GITHUB OCTOVERSE 2022 详细解读
- cocos2d-x Tile Map教程(二)
- 【Locust】新版本locust使用入门到分布式,附带脚本模板,复制即用。
- 没用过TheBrain,请别叫它“思维导图” | TheBrain深度解析
- Yonah是英特尔处理器酷睿core的开发代号