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)相关推荐

  1. main() 函数解析(一)——Linux-0.11 剖析笔记(六)

    文章目录 1. 宏定义`_syscall0` 2. `setup.s`读取的参数 3. 读取CMOS实时时钟信息 3.1 `outb_p(value,port)` 3.2 `inb_p(port)` ...

  2. setup.s 总结——Linux-0.11 剖析笔记(四)

    上一篇文章 setup.s 解读--Linux-0.11 剖析笔记(三) 详细地解释了 setup.s 的代码,整个代码完成的任务有: 获取一些参数保存在 0x90000 处 保存光标的位置 获取从 ...

  3. setup.s 解读——Linux-0.11 剖析笔记(三)

    题目:setup.s 解读--Linux-0.11 剖析笔记(三) 更新记录 版本 时间 修订内容 1.0 2018-4-14 增加了"获取显示模式"这一节,AL取值的表格 2.0 ...

  4. 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 ...

  5. bootsect.s 解读——Linux-0.11 剖析笔记(二)

    题目:bootsect.s 解读--Linux-0.11 剖析笔记(二) 文章目录 一些符号常量 老式Linux设备号的命名规则 bootsect 把自己搬运到 0x90000,并跳转 加载 setu ...

  6. OGG升级运行ggsic报Unable to find library 'libclntsh.so.11.1'

    我们系统是2009年建立的Oracle 10.2.0.5 for hp-ux ia64 11.31,目前需要进行号码核对的创建,对接成功后废除旧系统,使用的同步复制软件为Oracle Goldenga ...

  7. head.s 剖析——Linux-0.11 剖析笔记(五)

    文章目录 一.加载段寄存器 LSS指令 二.设置中断描述符表(IDT) 中断处理过程 `ignore_int` 三.设置全局描述符表(GDT),加载 GDTR 四.重新加载段寄存器 五.检测A20是否 ...

  8. bootsect.s 预备——Linux-0.11 剖析笔记(一)

    文章目录 boot 目录下文件介绍 16 位代码是什么意思 计算机启动过程 Linux 0.11 启动过程 boot 目录下文件介绍 boot 目录中一共有三个文件,都是用汇编语言写的,如下图(图来自 ...

  9. Pytorch源码分析

    目录 命名空间/类/方法/函数/变量 torch.autograd.Function中的ctx参数 DDP(DistributedDataParallel)的构造函数 torch.floor(inpu ...

最新文章

  1. 数据结构-js实现栈和队列
  2. junit数据驱动测试_使用Junit和Easytest进行数据驱动的测试
  3. 手把手教你用Python求均值、中值和众数
  4. linux每日一练:Enable multithreading to use std::thread: Operation not permitted问题解决
  5. vue项目接入高拍仪
  6. 组策略管理(关闭UAC)
  7. 法学生民法方面的论文选题,有什么推荐吗?
  8. 2015年4月21日---开始写自己的专业博客啦
  9. 苹果未能与恢复服务器取得联系解决
  10. u盘连接计算机无法识别usb设备,u盘插电脑显示:跟这台计算机连接的前一个USB设备工作不正常,windows无法识别它。...
  11. 后台模板vue-admin-template的安装
  12. java大数据培训专业课程与教学模式的介绍
  13. OpenCV模板匹配和轮廓处理
  14. NER任务的精确评估指标P、R、F1
  15. 高德citycode和国家citycode编码转换
  16. 【带你看看开源圈的新趋势】GITHUB OCTOVERSE 2022 详细解读
  17. cocos2d-x Tile Map教程(二)
  18. 【Locust】新版本locust使用入门到分布式,附带脚本模板,复制即用。
  19. 没用过TheBrain,请别叫它“思维导图” | TheBrain深度解析
  20. Yonah是英特尔处理器酷睿core的开发代号

热门文章

  1. Hadoop:eclipse配置hadoop-eclipse-plugin(版本hadoop2.7.3)
  2. ActiveMQ安装使用
  3. js实现简单的图片轮播
  4. zabbix配fpmmm(mpm)数据传送不了问题解决
  5. android+apk反编译+Mac
  6. 深入理解JVM类加载机制
  7. Exchange Tech Issues 参考网站
  8. PAT(乙级)1014
  9. IOS atomic与nonatomic,assign,copy与retain的定义和区别
  10. symfony2 环境搭建笔记