The invention belongs to the field of microelectronic technology, in particular to a \Butterfly\ transmission method for cascaded inter plate lines. The invention uses the regular communication between the host and the PCIe bus of the board as a complete pipelining mode of the independent flow stage, so that all user logic distributed on each block card can work continuously in a compact pipelining mode, and significantly increase the stickiness of calculation. The throughput rate is calculated from the user logic time system, is not affected by the increase in the number of cascaded card; data transmission in fully pipelined mode to further put forward the \Butterfly\ configuration of the access method; by separating the read / write data channel double DDR controller so as to make full use of the onboard bandwidth. The transmission performance of single DDR controller increase nearly doubled compared to. The invention is suitable for the number combination of arbitrary user logic unit and cascade card, and the allocation scheme of user logic unit on different cards.
【技术实现步骤摘要】
一种级联板间流水线的“蝶式”传输方法
本专利技术属于微电子
,具体涉及一种用多块FPGA/ASIC板卡级联进行完全流水线工作时主机与板卡间通信及板卡内部用户逻辑访存时的数据传输方法,尤其涉及级联板间流水线的“蝶式”传输方法。
技术介绍
可编程逻辑器件(FieldProgrammableGateArray,FPGA)或专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)的片上可用逻辑资源通常是受限的。在部署较大规模的应用(如深度卷积神经网络)时,往往难以完整部署到单块板卡上,而需要分拆到多块板卡上,形成一个级联的计算集群。级联集群的应用部署在形式上通常根据若干运算步骤划分成一系列子模块,即用户逻辑单元。这些逻辑单元采用级联的方式进行连续运算,后级单元依赖前级单元的运算结果。为了最大化系统的吞吐率,往往把各用户逻辑单元安排到流水线上,以便所有的用户逻辑能够同时进行运算。流水线方式工作的要点是防止前级单元的运算结果在取用前就被覆盖,一般的做法是在相邻流水级之间使用ping-pongbuffer结构。但是FPGA/ASIC的片上存储器的容量有限,且每个用户逻辑单元的数据传输量可能很大(如深度卷积神经网络中卷积层的输入输出特征图很大),因此中间数据需要存储到板卡上的DDR存储器(DoubleDataRateSDRAM)中,并至少划分出两段DDR地址空间以防止数据覆盖。主机与板卡间的数据通信也需要板卡上的DDR做缓存。用户逻辑访问DDR可以采用AXI(AdvancedeXtensibleInterface)总线协议, ...
【技术保护点】
一种级联板间流水线的“蝶式”传输方法,其特征在于,具体步骤为:(1)生成n级用户逻辑单元:N1,N2……Nn,分配到m块板卡:M1,M2,…Mk,…Mm上,各块板卡上的用户逻辑单元数量为:L1,L2,…Lk,…Lm,k为板卡编号,k∈[1,m];(2)对每块板卡分配两段地址空间,一段地址空间映射到DDR0控制器,记为A段;另一段地址空间映射到DDR1控制器,记为B段;(3)定义1位寄存器C,流水线每运行一次即一个流水周期进行一次0‑1/1‑0翻转;(4)对于每块板卡,当C为0时,各用户逻辑单元从A段地址读数据,向B段地址写数据;当C为1时,各用户逻辑单元从B段地址读数据,向A段地址写数据;(5)主机向M1写数据过程:当C为0时,向M1的B段地址写数据;当C为1时,向M1的A段地址写数据;(6)主机从Mk读数据,向M(k+1)写数据过程(k∈[1,m‑1]):若
【技术特征摘要】
1.一种级联板间流水线的“蝶式”传输方法,其特征在于,具体步骤为:(1)生成n级用户逻辑单元:N1,N2……Nn,分配到m块板卡:M1,M2,…Mk,…Mm上,各块板卡上的用户逻辑单元数量为:L1,L2,…Lk,…Lm,k为板卡编号,k∈[1,m];(2)对每块板卡分配两段地址空间,一段地址空间映射到DDR0控制器,记为A段;另一段地址空间映射到DDR1控制器,记为B段;(3)定义1位寄存器C,流水线每运行一次即一个流水周期进行一次0-1/1-0翻转;(4)对于每块板卡,当C为0时,各用户逻辑单元从A段地址读数据,向B段地址写数据;当C为1时,各用户逻辑单元从B段地址读数据,向A段地址写数据;(5)主机向M1写数据过程:当C为0时,向M1的B段地址写数据;当C为1时,向M1的A段地址写数据;(6)主机从Mk读数据,向M(k+1)写数据过程(k∈[1,m-1]):若为偶数,当C为0时,从Mk的A段地址读数据,向M(k+1)的B段地址写数据;当C为1时,从Mk的B段地址读数据,向M(k+1)的A段地址写数据;若为奇数,当C为0时,从Mk的B段地址读数据,向M(k+1)的B段地址写数据;当C为1时,从Mk的A段地址读数据,向M(k+1)的A段地址写数据;(7)主机从Mm读数据过程:若(n+m)为偶数,当C为0时,从Mm的A段地址读数据;当C为1时,从Mm的B段地址读数据;若(n+m)为奇数,当C为0时,从Mm的B段地址读数据,当C为1时,从Mm的A段地址读数据;步骤(4)、(5)、(6)、(7)涉及的所有过程均同步开展,其中主机端采用多线程方式并行处理与各板卡间的读写数据通信;以上过程全部完成标志一次流水线过程结束。2.根据权利要求1所述的级联板间流水线的“蝶式”传输方法,其特征在于,采用完全流水线工作模式,即主机向M1写数据过程,主机从Mk读数据、向M(k+1)写数据过程,k∈[1,m-1],以及主机从Mm读数据过程作为独立流水级,与各用户逻辑单元的运算过程同步展开,其中主机端采用多线程方式并行处理与各板卡间的读写数据通信;分布在各块板卡上的所有用户逻辑仍旧能以紧凑的流水线方式不间断工作。3.根据权利要求2所述的级联板间流水线的“蝶式”传输方法,其特征在于,在完全流水线工作模式下,若主机与板卡间的通信时间小于用户逻辑的计算时间,则用户逻辑的计算时间完全覆盖与主机通信的时间;设系统总运算量为W,单个流水级耗时为T,则系统吞吐率恒为W/T,系统吞吐率完全取决于用户逻辑的计算耗时,不受级联板卡数量增加的影响;总流水级数目为(n+m+1),系统延迟时间为(n+m+1)*T,随级联板卡数量呈线性增长。4.根据权利要求1所述的级联板间流水线的“蝶式”传输方法,其特征在于,在一个流水周期中,各块板卡上的所有用户逻辑均从一个DDR地址空间读数据,向另一个DDR地址空间写数据;此时用户逻辑从...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。