摘要:
部分内容from: Tensorflow C++ 从训练到部署(1):环境搭建 在之前的编译中,已经编译好了tensorflow_pkg相关的wheel。现在有一个需求,需要按照C++的代码进行模型加载和训练。查询资料后发现,需要重新编译一套TensorFlow支持的C++接口,主要是编译出来lib 阅读全文
摘要:
本文思路来源于http://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html,叙述有不同,望谅解,希望能从其他方面帮助大家了解C++语言的底层实现。 背景 在LLVM中默认禁止了C++的RTTI特性(RTTI特性的开关-fno-rtti),主要是为了性能考虑(C+ 阅读全文
摘要:
之前的工作一直集中在clang中,最近有点空闲时间,又重新熟悉了一下Pass的书写过程。(参考LLVM CookBook和http://llvm.org/docs/WritingAnLLVMPass.html) 比如要实现一个基本的读取函数名的Pass,比如FuncBlockCount.cpp 大概 阅读全文
摘要:
tvm官网中,对从ONNX预训练模型中加载模型的教程说明 教程来自于:https://docs.tvm.ai/tutorials/frontend/from_onnx.html#sphx-glr-tutorials-frontend-from-onnx-py 首先我对教程进行了一些修改,很多东西没有 阅读全文
摘要:
现在的卷积实现无非是那么几种:直接卷积、im2col+gemm、局部gemm、wingrod、FFT。如果直接卷积的话,其实kernel函数是比较好实现。以下代码参考至《OpenCL Programing Guide》,主要是main函数各种构造比较麻烦,个人感觉,OpenCL为了追求平台的移植性, 阅读全文
摘要:
在LLVM中,有原生的AST Clone,却没有一个比较好的Stmt copy功能,基于Scout在LLVM上进行的修改,我们实现了自己的Stmt Clone功能。 要进行Stmt Clone,肯定需要新建新的AST节点,首先用一个立即介绍如何进行AST节点的构建,以新建一个全局的variable为 阅读全文
摘要:
原文来自于:getting-started-with-opencl-and-gpu-computing/ 对整个程序的注释:http://www.kimicat.com/opencl-1/opencl-jiao-xue-yi 但是对CUDA比较熟悉的用户来说,应该不需要看注释就能理解全部的程序 ma 阅读全文
摘要:
首先给出一个TVM 相关的介绍,这个是Tianqi Chen演讲在OSDI18上用的PPT https://files.cnblogs.com/files/jourluohua/Tianqi-Chen-TVM-Stack-Overview.rar 对于图优化来说,位于整个软件编译栈比较高的层次: 首 阅读全文
摘要:
今天想起一个问题,看到的绝大多数CUDA代码都是使用的一维数组,是否可以在CUDA中使用一维数组,这是一个问题,想了各种问题,各种被77的错误状态码和段错误折磨,最后发现有一个cudaMallocManaged函数,这个函数可以很好的组织多维数组的多重指针的形式 ,后来发现,这个问题之前在Stack 阅读全文
摘要:
之前在测试NN中各个层的时间的时候,遇到一个非常奇怪的问题,分别使用Caffe自己的gpu方法和cuDNN方法,在卷积上性能差异非常大,但是在pooling层上基本没有变化。抽空检查了代码之后,发现是layer_factory模式导致的问题。下面就以下几个方面来进行 1.工厂模式 2.layer_f 阅读全文