- 主题:外包fpga做加速器
新手,想用fpga板子做个计算加速器。
功能可以很简单:
1、计算机主内存通过PCI-e和板载内存之间的连续内存空间读写
2、板载内存的固定空间是“指令”区,依次执行指令
3、从板载内存任意地址读取一个word到fpga内部的某一个“寄存器”。有m个端口,支持同时读取m个word
4、从fpga内部的某一个“寄存器”写入板载内存任意地址一个word。有m个端口,支持同时写入m个word
5、ALU,仅在寄存器之间做加减乘除。支持n个寄存器组成向量,同时进行宽度n的运算
除1、2外,3、4、5的指令都在固定的cycle数内完成,流水线throughput都是1个cycle。
这样的需求好实现吗?如果外包的话大概什么价
--
修改:jessez FROM 76.117.145.*
FROM 76.117.145.*
--
FROM 223.104.213.*
本科生课程设计用fpga实现5级流水线的难度,唯一有点价值的就是pcie接口实现dma那部分;啥指令区就是片上bram;m也就是VLIW;ALU加减乘除用ip就行了;好简单的作业……
--
FROM 123.58.117.*
是的,指令设计可以尽量简单,是用作加速器而不是cpu,所以还有主cpu如何操作fpga加速器的问题。从加速器的角度,希望“寄存器”尽量多,VLIW尽量宽,用满fpga到板载内存的带宽,
理想中是用上Xilinx virtex ultrascale+ hbm的好几百GB带宽hbm
【 在 richardR 的大作中提到: 】
: 本科生课程设计用fpga实现5级流水线的难度,唯一有点价值的就是pcie接口实现dma那部分;啥指令区就是片上bram;m也就是VLIW;ALU加减乘除用ip就行了;好简单的作业……
--
FROM 76.117.145.*
都用HBM了,那得多宽的带宽啊,差不多400+GB/s了,感觉有点大炮打蚊子了。如果只做加速器不做cpu那就更简单了,除去branch predict,可能连bypass和forward通路都不用,那就更简单了……
【 在 jessez 的大作中提到: 】
: 是的,指令设计可以尽量简单,是用作加速器而不是cpu,所以还有主cpu如何操作fpga加速器的问题。从加速器的角度,希望“寄存器”尽量多,VLIW尽量宽,用满fpga到板载内存的带宽,
: 理想中是用上Xilinx virtex ultrascale+ hbm的好几百GB带宽hbm
--
FROM 123.58.117.*
我觉得你可以直接拿一些开源的riscv的core改吧改吧,其中icache和dcache你就接到你想接的hbm上,甚至如果单纯pipeline顺序执行没有跳转甚至都没有cache miss,顶多就是个buffer了。至于传输无非就是AXI interface,控制的话就用axi-lite,用fpga的axi interconnect捅一捅就接上了。core的部分指令集可以自己定制,开源的core可能更倾向于嵌入式低功耗,你要是不满意可以duplicate多份资源,做个真多发射的架构。
【 在 jessez 的大作中提到: 】
: 是的,指令设计可以尽量简单,是用作加速器而不是cpu,所以还有主cpu如何操作fpga加速器的问题。从加速器的角度,希望“寄存器”尽量多,VLIW尽量宽,用满fpga到板载内存的带宽,
: 理想中是用上Xilinx virtex ultrascale+ hbm的好几百GB带宽hbm
--
FROM 123.58.117.*
对, 不做cpu, 只是加速器. 加速器在指令方面有什么简化的地方么?循环还是得有的啊, 这不就又需要branch了吗
【 在 richardR 的大作中提到: 】
: 都用HBM了,那得多宽的带宽啊,差不多400+GB/s了,感觉有点大炮打蚊子了。如果只做加速器不做cpu那就更简单了,除去branch predict,可能连bypass和forward通路都不用,那就更简单了……
: 【 在 jessez 的大作中提到: 】
: : 是的,指令设计可以尽量简单,是用作加速器而不是cpu,所以还有主cpu如何操作fpga加速器的问题。从加速器的角度,希望“寄存器”尽量多,VLIW尽量宽,用满fpga到板载内存的带宽,
: ...................
--来自微水木3.5.5
--
FROM 76.117.145.*
看看OpenCL,不需要重新发明轮子了
【 在 jessez 的大作中提到: 】
: 新手,想用fpga板子做个计算加速器。
: 功能可以很简单:
: 1、计算机主内存通过PCI-e和板载内存之间的连续内存空间读写
: ...................
--
FROM 125.34.73.*
作业吗
--
FROM 116.227.191.*