摘要: NVCC编译选项含义解析 NVCC编译 nvcc 是cuda程序的编译器。 1. 编译阶段 用于指定编译阶段最基本的编译参数。 -c: 同gcc,只预处理、编译和汇编为.o文件,不link -lib:生成一个库文件,windows上为a.lib,其他为a.a后缀 -cuda:编译所有的.cu文件为.cu.cpp.ii -cu 阅读全文
posted @ 2021-04-11 12:00 Aurelius84 阅读(2982) 评论(0) 推荐(0) 编辑
摘要: GCC编译选项含义解析 GCC 编译 GCC的编译流程分为四个步骤,分别为: 预处理(Pre-Processing) 可以通过gcc -E hello.cc -o hello.i查看中间结果 编译(Compiling) 汇编(Assembling) 链接(Linking) gcc 命令只能编译C++源文件,而不能自动和C+ 阅读全文
posted @ 2021-04-11 11:59 Aurelius84 阅读(1102) 评论(0) 推荐(1) 编辑
摘要: 如何加速C++文件的编译速度? 一、为什么慢? 重要的一个原因是C++的基本 头文件-源文件的编译模型: 每个源文件为一个编译单元 头文件数量多,可能会包含上百甚至上千个头文件 存在重复解析,每个编译单元中,这些头文件都要从硬盘里读取然后被解析 每个编译单元都会产生一个obj文件 这些obj文件被link到一起,此过程很难做到并行 阅读全文
posted @ 2021-04-11 11:57 Aurelius84 阅读(976) 评论(0) 推荐(0) 编辑
摘要: 源码研习 — TVM中的IR设计与技术实现 # 一、关键问题 ## TVM中的 IR 是什么,架构设计上分几层? 解答:TVM的整体结构图如下: ![TVM架构图](https://raw.githubusercontent.com/tlc-pack/web-data/main/images/design/tvm_dyn_workflow.s 阅读全文
posted @ 2021-04-11 11:48 Aurelius84 阅读(5215) 评论(0) 推荐(1) 编辑
摘要: TensorFlow Runtime,简称 TFRT,它提供了统一的、可扩展的基础架构层,可以极致地发挥CPU多线程性能,支持全异步编程(无锁队列+异步化语义)。TFRT 可以减少开发、验证和部署企业级模型所需的时间。 阅读全文
posted @ 2020-12-25 20:08 Aurelius84 阅读(1652) 评论(0) 推荐(0) 编辑
摘要: 所有进程的祖宗进程,就是系统启动时的 init进程。init进程会启动很多daemon进程,为系统运行提供服务。然后启动getty,让用户登录,登录后运行shell。 阅读全文
posted @ 2020-12-14 20:03 Aurelius84 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 在深度学习模型训练中,每次迭代过程中都涉及到Tensor的创建和销毁,伴随着的是内存的频繁 `malloc`和`free`操作,可能对模型训练带来不必要的 overhead。 在主流的深度学习框架中,会借助 chunk 机制的内存池管理技术来避免这一点。通过实事先统一申请不同 chunk size 的内存,并记录到内存池中。创建一个Tensor时,若内存池中存在满足需求的可用内存,则直接分配。销毁一个Tensor时,并不马上`free`掉还给系统,而是标记为可用状态,放在内存池供下个Tensor使用。 阅读全文
posted @ 2020-12-08 21:22 Aurelius84 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 编译原理—寄存器和指令入门 常见的通用寄存器有: EAX寄存器:累加器,常用于算数运算、布尔操作、逻辑操作、返回函数等。 EBX寄存器:基址寄存器,常用于存档内存地址。 CX寄存器:计数寄存器,常用于存放循环语句的循环次数,字符串操作中也常用。 EDX寄存器:数据寄存器,常和 EAX一起使用。 阅读全文
posted @ 2020-09-30 11:36 Aurelius84 阅读(603) 评论(0) 推荐(0) 编辑
摘要: CMake快速入门教程 Make工具因遵循不同的规范和标准,执行的Makefile的格式也是不同。主流的Make工具包括: GNU Make QT的qmake 微软的 MS nmake BSD的 pmake 每个平台都有自己的工具,则带来了很大的平台兼容性问题。CMake是一种跨平台的编译工具。 阅读全文
posted @ 2020-09-28 14:38 Aurelius84 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 物理内存的组织方式:物理内存是由连续的一页一页的块组成,每个物理页都有页号; 每个页由`struct page`表示,放进数组里—平坦内存模型。 阅读全文
posted @ 2020-09-28 10:00 Aurelius84 阅读(273) 评论(0) 推荐(0) 编辑