自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 概念理解: DDR的寻址容量设计

主要内容:DDR寻址容量设计的概念理解示例。DDR的数据存储在不同的bank上,你知道具体是如何通过数据总线和地址总线的配合,拿到所需的数据吗?通过下面这样一个简单的问题,我们来逐渐了解这个过程的实现。

2024-04-21 22:03:16 348

原创 内存概念理解:RANK,BANK,BURST,INTERLEAVING

背景:死磕内存的bank和rank概念的一天。网上的资料都差不多,还是有些地方没理通顺,有什么内存基础知识的书籍可以推荐吗?

2024-04-21 01:05:22 318

原创 SystemC入门之测试平台编写完整示例:带同步输出的多路选择器

内容:SystemC入门书中的简单测试平台编写示例。

2024-04-06 22:13:53 218

原创 SystemC入门学习Demo用例的工程化配置

背景:对不同的用例文件,使用CMakeLists.txt进行工程化管理的演示,这样开发者可以更加关注在代码开发上。

2024-04-06 14:40:43 167

原创 ubuntu系统安装systemc-2.3.4流程

systemC编程在linux下的环境配置。

2024-04-06 12:49:32 373

原创 AI编译器的后端优化策略

后端优化与前端优化的区别• 前端优化:输入计算图,关注计算图整体拓扑结构,而不关心算子的具体实现。在 AI 编译器的前端优化,对算子节点进行融合、消除、化简等操作,使计算图的计算和存储开销最小。• 后端优化:关注算子节点的内部具体实现,针对具体实现使得性能达到最优。重点关心节点的输入,输出,内存循环方式和计算的逻辑。生成低级IR;后端优化;代码生成;​1)生成低级IR:不同 AI 编译器内部低级 IR 形式和定义不同,但是对于同一算子,算法的原理实质相同。

2024-01-26 20:53:55 1053

原创 AI编译器的前端优化策略

工作领域是AI芯片工具链相关,很多相关知识的概念都是跟着项目成长建立起来,但是比较整个技术体系在脑海中都不太系统,比如项目参与中涉及到了很多AI编译器开发相关内容,东西比较零碎,工作中也没有太多时间去做复盘与查漏补缺。但是最近比较闲,发现了一个宝藏级的B站博主,系统的讲了很多AI芯片领域的知识,并把课程资源开源维护。在这里当个搬运工,传播一下。 AI系统框架图及AI编译器前端的位置示意如下: AI编译器的前端优化可以总结为神经网络相关的优化和代码/计算层面的优化两个方向

2024-01-26 20:51:07 1219

原创 C++虚函数表的简单理解

简单理解虚函数表的概念虚表就是为了实现面向对象的多态而设计的,简单说就是父类指针能调用子类成员函数。实现简单粗暴:把同一个类的所有虚函数地址放到一个指针的数组里,每一个类一个表。另外在每一个对象的结构体中放置一个指向虚表的指针。在调用时,根据对象里的虚表指针找到对应的虚表,再根据调用函数确定虚表中的哪一个函数地址

2024-01-23 23:14:03 389

原创 gdb调试代码的入门知识

学会gdb调试工具,让你的C++开发之路更加畅通!博主在以往的开发经验中,当调试C/C++程序时候过度依赖于vscode这种编译平台,虽然知道gdb工具可以更快的帮助定位到像core dump这种崩溃程序,但一直懒得切换过来。要想把C++掌握的更好,这种底层调试工具的熟练掌握很重要。

2024-01-23 22:57:28 989

原创 Tensor Core的一些概念理解

对CUDA Core来说,GPU并行模式实现深度学习模型的功能过于通用,比如常见的conv/GEMM操作,被编码为FMA(fused multiply-add)实现,硬件层面会把数据按照:寄存器-ALU-寄存器-ALU-寄存器,方式来回搬运。: 在CUDA架构中,共享内存是一个非常快速的内存类型,它位于每个线程块内部并为该线程块内的所有线程提供服务。理想的情况是,同一时钟周期内的所有线程访问的地址分布在不同的banks上,这样每个线程的访问都可以在一个时钟周期内被处理,从而实现最大的吞吐量。

2024-01-14 21:15:35 573

原创 为什么评价AI芯片不能只提峰值算力?

当AI芯片公司发布新产品时候,总是喜欢强调自己家芯片能提供的峰值算力是多少,实际上这只是一个客观的陈述,并不能作为具有高竞争力的说明,为什么呢?其实可以从如下两个方面来解释这个问题:资源与配套,杀鸡与宰牛

2024-01-14 08:30:00 888

原创 AI模型在专用加速器上的性能分析指标

AI模型在专用加速卡上性能分析大概流程:1)先计算模型本身的计算访存比,得到模型理论算力带宽需求。2)根据处理器本身支持的操作字节比(算力,带宽),确认模型在该处理器上的性能表现类型。3)根据专用加速器内部架构的内存和计算并行性的设计,分析AI模型运行时的schedule,估算得到模型在加速卡上的执行周期。

2024-01-04 08:45:00 1148

原创 基于矩阵乘的CUDA编程优化过程

背景:网上很多关于矩阵乘的编程优化思路,本着看理论分析万遍,不如实际代码写一遍的想法,大概过一下优化思路。矩阵乘的定义如下,约定矩阵的形状及存储方式为: A[M, K], B[K, N], C[M, N]。

2023-12-29 08:30:00 1213 1

原创 基于向量内积的CUDA编程优化过程

GPU运算步骤:分配内存,传输数据,核运算,传出数据,释放内存。向量内积的数据计算公式如下,向量内积结果的累加过程称为归约(reduction),本文将探讨GPU不同编程核函数下的向量内积运算效率情况。

2023-12-27 16:57:08 947

原创 nvprof:CUDA编程性能分析工具

NVIDIA提供了具有高性能计算的GPU产品,如何检验硬件的实际性能,写出高效的CUDA代码让算力加速卡物尽其用,那可以通过其配套提供的“护城河”软件工具链来检验和帮助发挥GPU的性能:nvprof。如下,对于将8192个A,B向量进行向量加法运算,即C[i] = A[i] + B[i],当软件设置不同的blocknum, threadnum时候,CUDA执行kernel的时间是不同的。比如如下命令,可以看到程序tmp1的总体性能,下面一行是打印gpu的执行时间情况。

2023-12-25 17:02:38 894

原创 编译代码性能优化实践:理解循环展开(pragma unroll)

CUDA的矩阵乘优化经常见到 pragma unroll 的使用,本文通过简单的示例,展示了CPU和CUDA对循环展开前后的性能表现,来通俗理解循环展开的优化策略。

2023-12-01 19:23:21 1337

原创 Policy CMP0146 is not set: The FindCUDA module is removed

去警告,Policy CMP0146 is not set: The FindCUDA module is removed

2023-12-01 15:46:00 1188

原创 error: identifier “__builtin_is_constant_evaluated“ is undefined

原因:gcc版本过高,当前是gcc-9, 需要降级为gcc-8, 或者gcc-7。

2023-12-01 15:10:38 258

原创 python的时间测试小工具:timeit

timeit是Python标准库内置的小工具,可以快速测试小段代码的性能。本文主要记录它的参数接口和使用示例。

2023-11-29 19:14:46 289

原创 排序算法:n个0~1000之间的整数,将他们从大到小排序

如果没见过这种排序题,可能首先想到的就是常用的排序算法,比如快速排序,归并排序,那如果输入的n足够大,时间复杂度肯定比较高。其实题目0-1000的范围是一个题眼,所以一定有更优的排序算法:这里用到了桶排序!首先,0-1000的值域,创建1001个桶,每个桶都对应一个index,里面放一个初始值count=0,表示大小是index的数出现的个数。接着再根据要求从大到小,或者从下到大遍历1001个桶,如果count>0,表示出现过count,就打印count个对应桶index的值,最后,就完成了排序算法输出!

2023-11-29 00:02:48 360

原创 Ubuntu20.04部署TVM流程及编译优化模型示例

记录自己安装TVM的流程,以及一个简单的利用TVM编译优化模型示例。

2023-11-28 09:59:23 483

原创 ubuntu20.04安装tensorRT流程梳理

梳理最近在ubuntu上安装tensorRT的流程,记录一些踩坑

2023-11-26 23:27:18 553

原创 CUDA initialization failure with error: 999

CUDA initialization failure with error: 999

2023-11-26 22:57:50 621

原创 linux系统初始化本地git,创建ssh-key

记录新装的linux系统怎么初始化本地git,并创建ssh-key

2023-11-26 17:47:43 507

原创 ubuntu20.04打不开github网址的有效解决方案

重装的ubuntu系统,chrome浏览器刚开始还能打开github网址,然后突然就打不开了,换网络也不行。如下命令打开hosts文件,在打开的文件末尾添加第1步得到的信息。2,修改host文件,添加第1步查询到github对应的信息。,在搜索栏输入如下3个网址,查询并记录对应的IP地址。1,查询你的电脑IP对应的github网址信息。重新打开github网址,看是否已经能打开了。3,测试问题是否解决。

2023-11-26 16:13:31 1392

原创 linux系统更新cmake版本

在ubuntu系统更新旧版本的cmake,可按照如下步骤。

2023-11-19 20:37:19 465

原创 C++常考面经汇总(30+题)

汇总了网上C++常考的基础知识,方便快速复习。实际面试场景考察的题目分享

2023-11-18 18:11:34 230

原创 记录pytorch实现自定义算子并转onnx文件输出

概览:记录了如何自定义一个算子,实现pytorch注册,通过C++编译为库文件供python端调用,并转为onnx文件输出

2023-11-14 09:00:00 843

原创 简单讲讲RISC-V跳转指令基于具体场景的实现

结合具体场景的例子,简单讲讲risc-v中指令跳转的实现

2023-11-07 22:08:50 774 1

原创 ONNX自定义算子与文件导出流程再梳理

工作需要把onnx导出文件的流程又梳理了一遍,弄清楚了如何自定义算子,以及导出结果检查。分享一下~

2023-11-07 20:38:28 767

原创 SystemC入门之测试平台编写完整示例:全加器

导读: 本文将完整演示基于systemC编写一个全加器的测试平台。具体内容包括:激励平台,监控平台,待测单元的编写,波形文件读取。

2023-11-04 18:36:50 344

原创 SystemC入门学习-第8章 测试平台的编写

本章的注意力集中在SystemC搭建验证和编写测试平台上。重点包括:如何生成时钟信号和激励波形;如何编写有响应能力的测试平台;如何记录仿真结果

2023-10-15 12:53:41 546

原创 SystemC入门学习-第5章 同步逻辑建模

本章重点学习同步逻辑中的触发器,锁存器的一些建模规范。包括:触发器建模,带异步置位/复位,带同步置位/复位,锁存器建模

2023-10-14 19:16:48 508

原创 数字电路中触发器/锁存器的简单理解,与电路结构

通过的电路图,简单理解数字电路中的触发器和锁存器

2023-10-14 15:29:10 340

原创 SystemC入门学习-第3章 数据类型

详细介绍SystemC RTL 支持的SystemC 数据类型和C++数据类型。及其对应的操作符和使用示例

2023-09-24 22:31:51 1004

原创 被“多元平等共融”种草——2023谷歌开发者大会参会体验

最终我收到的谷歌开发者大会邀请邮件是在大会的第二日,可能和我从事的岗位偏向人工智能领域,而AI相关的专题演讲也集中在第二天吧。上午8点开始进场,但是第一场专题演讲是9:30才开始的,这中间主会场就在播放这一年谷歌的项目和其它开发者大会现场照片,我上午听了关于机器学习的进展分享,参加了女性工作坊论坛,下午听了AI创新案例以及大模型相关进展,印象比较深刻的是这几个项目,感觉谷歌是一家很有社会担当的企业,做了很多公益项目,为推动多元平等共融的发展理念做了很多事情,不愧为科技领域头部企业。主打感受:好吃,且免费。

2023-09-14 00:32:01 118

原创 CPU执行程序的三个阶段简单示例(取指,解码,执行)

通过简单示例,梳理CPU中执行程序三个阶段的大概过程,了解计算机CPU的工作过程

2023-08-19 13:21:07 784

原创 向量数据库技术-大模型的最佳辅助

向量数据库是指专门用来存储和管理向量数据的库。是现在流程的大模型应用中很好的辅助工具。传统数据库是只那些一个ID对应一个表单之类的文本数据,比如一个餐厅的菜单数据库,这类数据统称为结构化数据。文本、图像、音频、视频等非结构化的数据,这些是现在使用的最多的“大数据”。大模型就是学习的这些不规则,非结构化的大模型数据。大模型通过向量来认识这些数据。向量是一串数字,可以通过嵌入emmbedding的方式把各种非结构化的数据表达出来。

2023-07-23 19:16:24 667

原创 趣味玩游戏算法集锦:实现简单,找规律难!

算法的求解是存在套路的。有些题目大家一遍就看懂了,最后求解代码实现也很简单,一行两行就可以了。但是并不清楚为什么是这样的求解?如何在思考的过程找到规律呢?其实这个思考的过程,也是对问题进行梳理并抽象分析,归纳总结的重要体现。本篇将汇总这些有意思的算法题目。提供分析的过程,帮助大家在量级层面看待这类题目的求解规律。当面对一个新问题时候,能够透过现象看本质,快速解答。

2023-05-30 22:31:56 859

原创 三门问题的实验验证:贝叶斯概率公式实战

数理统计与概率论经常出现在我们的日常生活中,如果能灵活掌握,可以起到很大的帮助。下面通过几个经典问题的探讨,浅入深出,更加深刻的理解贝叶斯全概率公式和贝叶斯公式的作用。

2023-05-28 23:31:13 2503

空空如也

空空如也

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

TA关注的人

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