自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AI芯片论文:ASIC系列

目录索引页。论文一:指令集架构处理器Diannao论文二:服务器级处理器Dadiannao论文三:面向实时处理的视觉处理器Shidiannao论文四:稀疏处理器Cambricon-X论文五:Google TPUv1总结:AI芯片分类...

2021-02-04 15:51:14 508

原创 Zedboard系列教程

下面是我学习Zedboard FPGA开发板时的几个程序。这里算是个目录索引页了。实验一:PL端的基本使用:Verilog实现按键控制LED灯 仿真评价:本实验通过编写Verilog实现FPGA可编程逻辑,需要锁管脚。实验二:PS端的基本使用:Hello World程序评价:本实验在Vivado中搭建一个基本的Zynq平台,再用SDK编写程序,输出Hello world。实验三:PS+PL端的结合使用:软硬件协同实现流水灯评价:PS端是Zynq平台;PL端是LED灯,用自带的GPIO I

2021-02-03 18:49:47 3800

原创 AXI4总线实现PS-PL的float类型数据传输

数据传输HLSVivadoSDKHLS// test.cpp#define SIZE 50void test(float *A,float *B){#pragma HLS INTERFACE s_axilite port=return bundle=CTRL //与start,done信号相关#pragma HLS INTERFACE m_axi depth=50 port=B offset=slave bundle=output#pragma HLS INTERFACE m_axi

2021-03-14 22:08:11 655 1

原创 利用AXI-stream总线实现PS-PL端数据传输(float类型)

float类型数据传输HLSVivadoSDK前面我们利用AXI-stream总线实现整数类型的数据传输,本文我们将利用AXI-stream传输浮点类型,涉及到一个数据转换过程。HLS首先,我们明确,如果想要利用AXI-stream总线进行数据传输,在HLS中接口就只能用ap_axis,ap_axiu类型的结构体定义,对应的数据类型是ap_uint<32>,也就是说数据传输统一被封装为ap_uint<32>数据类型。如果想要传输其它类型数据,就需要利用union实现转换。下面例

2021-03-14 20:07:11 2422 1

原创 利用AXI-stream总线实现PS-PL端数据传输

数据传输基本测试HLSVivadoSDKHLS使用AXI-stream作为总线接口时,有以下两种定义数据类型的方法,其中ap_axis是有符号数定义,ap_axiu是无符号数定义。如果使用int,float等类型定义数据,AXI_stream会因为缺少相关副通道信号而导致传输失败。template<int D,int U,int TI,int TD> struct ap_axis{ ap_int<D> data; ap_uint<(D+7

2021-03-14 15:26:04 2523 6

原创 CPU设计方向

CPU1.提升主频2.乱序执行3.多个CPU核心4.异构SOC系统目前,提高CPU执行速度的方法有以下几种1.提升主频上世纪80年代,提高主频是一种提升CPU性能的有效方法。目前来说,该方法已经到达瓶颈。2.乱序执行从指令集执行角度来加速CPU执行的方法。最经典的两种乱序执行算法是Tomasulo算法和记分牌算法3.多个CPU核心多核是将多个物理CPU核心集成在一个SOC系统上,AMD和Intel很多CPU的设计就是采用这种思路。原来是只有一个CPU核,现在有多个,处理性能自然提升。现在的笔记

2021-02-08 20:51:16 386 1

转载 Zedboard:仿真

转载原文 上个试验中,我们创建了简单的工程编程了FPGA并且通过现实的开关测试了代码。这样的测试在实验一这样的简单的工程是足够了,但实际的工程中都是比较复杂的,这使手动的测试很难满足工程需求,这就需要仿真来验证工程。 这里举一个最简单的仿真。 Test Bench 仿真所设计的工程需要人为控制输入以验证输出的正确性。理想的的测试是创建输入激励信号并且验证输出的正确性。实际工程中,当测试进行过程中,需要打印出系统信息。如果测试失败需打印错误信息,不论

2021-02-02 15:18:55 286

转载 Zedboard:PL端点亮LED灯(Verilog)

转载原文Zedboard实验一点亮一盏LED 目的 熟悉Vivado开发环境熟悉ZYNQ开发流程 创建Vivado工程 开发环境:Vivado2015.4 1. 新建工程 主菜单选择File->New Project后,弹出的窗口点击next,出现下图:选择工程目录,编辑工程名这里命名为Tutorial1。 弹出窗口,选择RTL Project 接下来一路next,直到如下图窗口:选中Zedboard板子。点击Finish,完成工程创建。 2. 添加源文件 在Pro

2021-02-02 15:12:11 2305 1

原创 Zedboard:软硬件协同实现流水灯

PS端控制PL端(GPIO IP核)Vivado端:不需要锁管脚。Board栏的所有外设,Xilinx自家的板子都有的,从这一栏选的外设引脚约束已经自动添加好了。1.Create block design2.添加Zynq IP核,Zynq的配置可参考该文章3. 添加自带的GPIO IP核。配置如下:第一组width设置为8(对应8个灯)4.点击自动连线,GPIO设置为led_8bit模式5.点击自动连接外设最终Vivado中的bd图如下所示:验证,生成bit流,导出为硬件平台即可

2021-02-02 14:43:54 797

转载 DMA环路测试

转载:原博客利用HP接口实现DDR—DMA—FIFO—DMA—DDR 的数据传输过程(DMA是simple模式,中断实现)DMA IP核三种模式:更多实例可参考项目system.mss中的demo。simple模式:支持轮询和中断两种方式。SG模式:支持多通道同时传输;能够将CPU解耦。Micro DMA模式 涉及到高速数据传输时,DMA就显得非常重要了。本文的DMA主要是对PL侧的AXI DMA核进行介绍(不涉及PS侧的DMA控制器)。AXI DMA的用法基本是:PS通过AXI-lit

2021-02-02 13:19:15 1654

原创 Zedboard:PS端Vivado搭建过程

1.添加Zynq IP核;2.配置IP核(1)Preset为Zedboard开发板(2)去除GP0接口使能(3)仅保留一个UART1接口(4)去除PL端时钟和复位3.连线后如图所示后续的步骤:1.封装,生成bitstream,导出为硬件平台;2.启动SDK,编写软件端程序即可(直接用Hello World模板最简单了)。Finished....

2021-02-02 12:09:46 1697 2

原创 AI芯片:稀疏处理器Cambricon-X分析

Cambricon-X: An Accelerator for Sparse NeuralNetworks一、稀疏网络  我们以前提到的深度学习网络都属于稠密网络。经过研究发现,神经元间的连接很多都是冗余的,剪枝后反而有助于精度提升。目前网络的稀疏度可以达到90%以上,也就是说原来一个100MB参数的网络,压缩后,只有不到10MB的参数,大大减少了运算量。  对于加速器设计来说,剪枝后带来的一个问题是网络不规则性。如果不能较好的解决该问题,就不能从剪枝中获得理想收益。二、几种常用的压缩方法.

2021-02-01 14:15:06 1392 2

原创 AI芯片:Google TPU分析

In-Datacenter Performance Analysis of a Tensor Processing Unit TPU被设计为PCIe上的协处理器,可以像GPU一样插入到服务器中使用。一、TPU架构介绍  Weight FIFO:能容纳4个tile深的权重,主要负责从8GB的off-chip DRAM上读取权值;Unified buffer:24MiB大小的片上缓存单元。用于存储输入数据(DMA传输)和产生的中间结果;MMU:256 x 256 x 8bit的乘加单元。.

2021-01-31 12:24:45 2026 2

原创 AI芯片:面向实时处理的视觉处理器Shidiannao

ShiDianNao: Shifting Vision Processing Closer to the Sensor一、Diannao与Dadiannao  本文提出了一个视觉处理器,与传统的视觉处理装置不同。本文将处理单元Processor放在Sensor感知器附近,从而省略了DRAM的访存过程,我们对比一下传统和本文的视觉处理过程。传统视觉处理过程:Sensor采集->DRAM->Processor(SRAM)本文视觉处理过程:Sensor采集->Processor(S.

2021-01-29 18:49:40 895

原创 AI芯片:几种常见类型的AI芯片

引入  近些年来,深度学习网络不断兴起。数据运算量越来越大,对处理器并行处理能力要求越来越高。传统的通用处理器CPU受摩尔定律的影响,已经不能满足大规模的数据处理了。故而,专用AI处理器的设计再一次引起了人们的广泛关注。本文中,作者介绍几种常见类型的AI芯片。一、指令集架构的控制流处理器  这类处理器会为深度学习应用专门定义一类指令集,用指令集驱动的方式指引处理器的执行。指令集驱动的方式常见于通用处理器CPU的设计之中。2014年,寒武纪提出了Diannao[1]架构处理...

2021-01-28 18:42:36 2877

原创 AI芯片:服务器级处理器Dadiannao分析

DaDianNao: A Machine-Learning Supercomputer一、Diannao与Dadiannao  Diannao和Dadiannao这两篇文章都发表于2014年。如果把Diannao看作是一个嵌入式终端处理器,那么Dadiannao就是服务器上使用的大规模高性能处理器。  以前听过龙芯CPU的发展方向,3A5000工艺提高主频,3C5000工艺增加核数。Diannao是在单核情况下对结构设计(主频)的探索,Dadiannao是对多核架构设计...

2021-01-26 20:41:13 975 1

原创 Zedboard通过DMA方式实现PL和PS端通信—矩阵乘加速

[具体操作步骤可以参考前一篇文章](https://blog.csdn.net/qq_37719487/article/details/112983308)一、OverviewZedboard开发板包含两部分PS和PL,PS部分包含双核ARM处理器,PL部分是FPGA编程逻辑。本文利用DMA传输方式实现两部分的交互。架构图如下所示,左侧是PS端(Processing System),右端是PL端(Programmable Logic)。控制信号是通过PS端的GP0接口与...

2021-01-26 13:43:25 1360

原创 AI芯片:指令集架构处理器Diannao分析

本文重在步骤过程上,对代码讲解较少。一、Overview本文首先利用高层次综合工具HLS实现一个矩阵乘IP核;再利用Vivado软件搭建一个系统;最后利用SDK编写驱动程序,在Zedboard上运行。...

2021-01-26 12:31:24 2143 2

原创 Zedboard上部署Vivado HLS实现的矩阵乘IP核

前一段时间学习了FPGA Zedboard开发板,放假了时间充足,在此分享一下。 1.Overview首先利用高层次综合工具HLS实现一个矩阵乘IP核,再利用Vivado软件搭建一个系统,最后利用SDK编写驱动程序,在Zedboard上运行。 2.HLS矩阵乘的基本运算过程是:C[n][n]=A[n][n]*B[n][n]HLS部分代码如下// 矩阵乘主文件 mul.cpp#include "mul.h"void mul(data* A_addr,...

2021-01-22 20:16:53 2637 4

原创 Vivado HLS加速卷积层运算

源代码1.Introduction卷积神经网络(CNN)主要有卷积层、池化层、全连接层和激活层等网络层顺序连接而成。本文主要针对计算密集型的卷积层,利用Vivado HLS工具对其在FPGA上的执行进行加速。2.Basic knowledge一个基本的卷积运算由6层for循环实现,如下面代码所示。从外到里的循环依次是K*K大小的卷积核,输出特征图的行列(Tr,Tc),输出通道数(Tout),输入通道数(Tin)Kernel_Row:for(int kr=0;kr<K;kr++){ Ke

2020-12-04 20:00:51 6405 28

原创 github使用方法

github使用方法:1.创建项目后,提交到master上1)git init2) git add .3) git commit -m "note"4) git remote add origin http.....git5) git push -u origin master2.提交到branch上1) git branch branch_name2) git checkout branch_name3) git add.4) git commit...

2020-10-08 10:42:34 87

转载 win10下安装caffe (CPU+VS2013+Anaconda2)

自己电脑的GPU不是很好  暂时先不考虑。分一下步骤:1.安装Anaconda             假设我先安装Anaconda3,请在anaconda3的根目录(),去安装Anaconda2,(我是在Anacond...

2020-05-26 09:45:36 326

转载 DeepCompression-Caffe

转载。参考原博客进行实验,进行了少量修改,可调试运行。运行环境为win10+VS2013,caffe为caffe-windows。修改了caffe/src和caffe/include两个文件夹,修改后的github连接为https://github.com/happyday22/Compression-caffe,下载后替代caffe-windows中的对应文件夹编译运行即可。 Why首先讲讲为什么CNN模型压缩刻不容缓,我们可以看看这些有名的caffe模型大小: 1...

2020-05-25 15:38:05 200

转载 在Windows平台上用VS调试caffe源码

转载自该博客。这篇文章主要用来说明如何对网络进行调试。这篇文章已经默认你已经成功的在Windows下配置并编译了Caffe并跑通了mnist demo 下面就...

2020-05-09 11:15:50 220

原创 树的几种递归形式总结

第一种:层次型递归:树结点的左子树和右子树是按顺序递归的例题:求解树的叶子结点数;树的前序、中序、后序递归方法(n叉树可以对应写出代码)void func(node* root){ //添加对root的具体操作(可与下面代码交换位置) func(root-&gt;left); func(root-&gt;right);} 第二种:并...

2018-11-26 20:03:46 1508

空空如也

空空如也

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

TA关注的人

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