自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 【VLA】c/c++中vla是用什么实现的栈空间内存申请

VLA(Variable Length Array)是c99开始支持的,后续版本一直作为扩展功能支持。官方给出的建议是:如果可以替换使用,请不要使用。370 便是用于栈空间内存申请的处理,alloca指令的主要功能为:alloca。此外,@llvm.stacksave() 和 @llvm.stackrestore(ptr %9)便是栈上用来保存和读取对应指针的处理动作。通过clang进行编译,dump出llvm ir的信息: clang -S -emit-llvm -o 目标文件 源文件。

2024-01-30 09:30:35 546 2

原创 Pytorch中cuda kernel进行离散访存的几个基本函数

Pytorch原生CUDA C的大部分kernel都支持离散数据访存,其主要的逻辑都是通过thread id去匹配到输入输出Tensor的内存索引。熟悉Pytorch的同学都知道,Tensor的内存索引在pytorch中是通过size,stride和offset来表示的。基本的规则便是:假设一个Tensor a 的size为(2, 4, 4),stride为(16, 4, 1)对其进行slice操作后,Tensor b的size为(2, 4, 2),stride为(16, 4, 2)那么对应点。

2023-07-31 21:43:03 175 1

原创 基于pytorch1.9原生解释,重点介绍native_functions.yaml中关键参数

CompositeExplicitAutograd: 表示这个kernel使用于所有的算子,但是需要在derivatives.yaml文件中显示地声明反向函数。这类算子典型的应用场景是通过stub将复杂的任务分发给单独的kernel,而本身只进行简单的工作。CompositeImplicitAutograd: 表示这个kernel使用于所有的算子,且天然支持反向处理。1.9分支已经没有使用。method的定义表示: self.for(), function的定义表示: at::for()

2023-04-07 22:17:58 690

原创 卷积核为1×1的conv转为矩阵乘运算,pytorch实现

主要就是ci和ci相乘,然后co方向加上bias。

2023-04-07 20:21:16 414

原创 pytorch nested tensor基本介绍

1.3) 通过创建一块连续的大buffer,将各个Tensor内存拷贝到buffer tensor, 通过nested_sizes_, nested_strides_, nested_offsets_进行信息记录,也是根据这几个信息,判断各个Tensor和buffer的连续性;调用: torch._nested_tensor_from_tensor_list(tensor_list, dtype, None, device, None)2.3.3)传入的不可以是nestedTensor。

2023-04-04 19:44:31 1121

原创 pytorch1.6原生算子remainder调用分发

pytorch1.6原生 remainder算子分发调用逻辑

2023-03-08 11:38:28 83

原创 pytorch基于intrusive_ptr_target实现的核心数据结构介绍

基于pytorch中intrusive_ptr_target的实现,大体介绍StorageImpl和TensorImpl类的实现。

2023-03-05 17:09:23 347

原创 Cpython中定点int计算是否越界问题的处理

Cpython中定点int计算是否越界问题的处理

2023-02-20 11:36:09 163

原创 python使用双层单向链表存储大整数对象代码实现

python使用双层单向链表存储大整数对象代码实现

2023-02-09 21:22:57 112

原创 std::add_const

官方说明中核心语句: 如果本身就是const类型或者引用类型或者函数类型,则保持不变; 其他场景变成T const官方说明:add_const - C++ Reference#include <iostream>#include <type_traits>#include <functional>using forward_func = std::function<int(int)>;typedef int(func_point_typ.

2022-04-19 15:21:20 1294

原创 TF32和AMP训练为何可以保证训练精度收敛

目标自NV的Ampere架构后,越来越多的AI研究者使用TF32或者AMP(混合精度)进行网络训练。在网络训练精度的同时,也极大的提升了训练速度。(其中更多的应用者选择TF32)相对于原先深度学习领域使用FLOAT32进行训练,明明训练中降低了数据表示精度,为什么还能取得满意的训练和推理结果呢?本文主要基于这个基本问题展开讨论。下面先简单看一下A100支持的浮点运算单元和其对应算力。基本数据类型介绍:各数据类型算力介绍:问题解答如果想要解答上面这个问题,最主要还是要探

2022-04-15 03:54:33 2723

原创 【unordered_set初始化】unordered_set自定义hash函数和compare函数的初始化方法

#include <iostream>#include <unordered_set>#include <string>namespace uset {typedef struct PeopleInfo { std::string name; int age;} PInfo, *PInfo_ptr;typedef bool(*info_com)(const PInfo&, const PInfo&);// std::functi.

2022-04-01 03:38:28 963

原创 pytorch1.9.0 IValue类分析

IValue(InterpreterValue)IValue(InterpreterValue)是一种boxing的数据类型,其中主要包含的成员变量为Payload,Tag和一个是否为指针的bool变量。其中Payload为Union类,真实的数据存储,Tag为一个枚举类。代码位置:https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/core/ivalue.hIValue中通过Tag完成对应数据类型判断,从而便于完成Pay..

2022-03-21 14:37:10 1226

原创 Vision transforme基本结构介绍

论文原文:https://arxiv.org/pdf/2010.11929.pdf中文版知乎解读:[论文笔记] ViT - 知乎网络基本思想:通过transformer完成nlp和cv类网络结构的统一。 NLP网络输入序列,通过Encoder和Decoder完成对于序列信息的编码和解码。CV网络中基础为图片(假设图片大小为224×224×3),通过卷积和MLP完成图片信息的抽取和分类(假设为分类网络)。 将Transformer应用与图片上,主要就是替换掉原有的卷积层(更确切地说是通过a...

2022-03-14 19:52:42 5075

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除