- 博客(17)
- 收藏
- 关注
原创 关于FPGA加速推理大语言模型时,内存限制问题的解决方案的思考。
以 >150MB/s 的速度从目标系统检索内存。实际带宽远不止这点,这是他转成usb外设后的速度。真正的带宽瓶颈可能是pcie和你电脑内存的速度。原理大致就是FPGA通过pcie接口直接访问电脑主机的内存,绕过CPU,简称DMA,直接内存访问。想象一下你的主机插满128G的内存。说实话开发难度还是有点大的你还得懂pcie。今天洗澡的时候我突然想到了之前在B站看到的直接用FPGA读取PC内存的外挂。然而对于百亿量级参数的大模型,大多数FPGA上那几个G的DDR根本不够使。证明了逻辑实现大模型推理的可行性。
2024-06-03 10:22:38 374 5
原创 AXI interconnecte 多主机 读写DDR,PL和软核共享DDR
PL 和 Microblaze均能正常对DDR读写,还可挂载其他外设。axi总线debug可以用system_ila,很方便。后续更新具体实现方法。
2024-05-30 18:53:04 306
原创 一种多通道数据源DDR缓存的FPGA实现方法
0013] 2)设置写FIFO水位线,目的是从写FIFO中读出数据时保证FIFO必须有一定的数据。写FIFO中取数据至DDR对应的地址空间内 ,再将DDR地址空间中取数据写到读FIFO中,其中。[0024] 进一步,所述的数据源通过多个通道将数据先写入异步FIFO端口的写FIFO,再从。对接量太小,这会导致DDR带宽利用率降低,设置的太大,写FIFO和读FIFO所需缓存的数据。设置读FIFO的水位线,目的是防止从DDR读出数据时写到读FIFO中会出现数据溢出,取数据存到设置的DDR对。
2024-05-21 20:07:07 391
原创 C语言-GPS经纬度数据提取
一帧数据:const char input[1024] ="$GNGGA,084852.000,2236.9453,N,11408.4790,E,1,05,3.1,89.7,M,0.0,M,,*48 $GNGLL,2236.9453,N,11408.4790,E,084852.000,A,A*4C $GPGSA,A,3,10,18,31,,,,,,,,,,6.3,3.1,5.4*3E $BDGSA,A,3,06,07,,,,,,,,,,,6.3,3.1,5.4*24 $GPGSV,3,1,09,10,78
2021-04-20 21:50:09 2213 2
原创 通过Windows命令行cmd访问树莓派
输入命令:ssh –p端口号 用户名@IP地址点击回车根据提示输入密码例如:方式一:ssh –p22 root@127.0.0.1方式二:省略了方式一的port端口号ssh root@192.168.1.254方式三:直接@名称ssh root@OpenWrtssh进入openwrt...
2021-04-19 14:44:17 1724
原创 图书管理系统
添加新书查询借阅二次添加新书(读取已有的.xls并修改)代码:import xlwtimport xlrddef read_old_data(row0_len): try: filename=".\图书.xls" old_data = []#读取表格已有内容 data = xlrd.open_workbook(filename) sheet0 = data.sheet_by_index(0)
2021-04-14 23:09:21 427 1
原创 UART、I2C、SPI的优缺点和区别
UART、I2C、SPI的优缺点和区别协议UARTSPII2C总线3(RX、TX、GND)4(CS、CLK、MOSI、MISO)4(VCC、GND、SCL、SDA)同/异步异步同步同步全/半双工半双工全双工半双工传输速度低高中应用场景板内/间板内(不同芯片之间)板内模式一对一一对多一对多/多对多一主多从实现X各CS地址名词解释:全双工:(Full Duplex)是指在发送数据的同时也能够接收数据,
2021-04-01 21:17:59 8963 1
原创 Verilog练习_6_More Verilog Features(合集)
1、Conditional运用:Verilog has a ternary conditional operator ( ? : )(condition ? if_true : if_false)找最小我的代码:module top_module ( input [7:0] a, b, c, d, output [7:0] min);// wire [7:0] min1,min2,min3; assign min1 = a < b ? a:b ; as
2021-03-31 22:02:46 205
原创 Verilog练习_6_Procedure(合集)
1、Alwaysblock1// synthesis verilog_input_version verilog_2001module top_module( input a, input b, input sel_b1, input sel_b2, output wire out_assign, output reg out_always ); assign out_assign = a & b ; always @(
2021-03-30 09:42:23 336
原创 Verilog中的XOR(异或)和XNOR(同或)
input a,b;output c异或 XORassign c = a ^ b ;同或 XNORassign c = ~a ^ b ;
2021-03-30 08:25:02 26624
原创 Verilog练习_6_Module cseladd
注意:第一级加法器与之前相同,但是我们复制了第二级加法器,一个假设进位= 0,另一个假设进位= 1,然后使用快速2比1多路复用器选择哪个结果碰巧是正确的。我的代码:module top_module( input [31:0] a, input [31:0] b, output [31:0] sum); wire [15:0] sum_1,sum_2,sum_3 ; wire cout_out ; add16 add1 ( ..
2021-03-29 23:30:38 250
原创 Verilog练习_5_Module addsub
注意:Use a 32-bit wide XOR gate to invert the b input whenever sub is 1. (This can also be viewed as b[31:0] XORed with sub replicated 32 times.我的代码:module top_module( input [31:0] a, input [31:0] b, input sub, output [31:0] sum); wir.
2021-03-29 23:09:53 416
原创 Verilog练习_4_Module fadd
module top_module ( input [31:0] a, input [31:0] b, output [31:0] sum);// wire cout_cin; wire [15:0] sum_1 ,sum_2; add16 add1 ( .a(a[15:0]), .b(b[15:0]), .cin(0), .cout(cout_cin), .
2021-03-29 22:26:14 481
原创 Verilog练习_3_Module add
我的答案:module top_module( input [31:0] a, input [31:0] b, output [31:0] sum); wire cout_cin ; wire [15:0] sum_1 , sum_2 ; add16 a1 ( .a(a[15:0]), .b(b[15:0]), .cin(0), .cout(cout_cin), .
2021-03-29 20:08:14 434
原创 Verilog练习_2_Module shift8
This exercise is an extension of module_shift. Instead of module ports being only single pins, we now have modules with vectors as ports, to which you will attach wire vectors instead of plain wires. Like everywhere else in Verilog, the vector length of th
2021-03-29 19:19:50 488
原创 Verilog练习_1_3Modules
题目:You are given a module my_dff with two inputs and one output (that implements a D flip-flop). Instantiate three of them, then chain them together to make a shift register of length 3. The clk port needs to be connected to all instances.The module provi
2021-03-26 13:48:21 216
转载 树莓派4B/400/3B+等等 的USB大容量存储启动
仅在Raspberry Pi 2B v1.2、3A +,3B,3B +,4B,400,计算模块3,计算模块3+和计算模块4上可用。本页说明如何从USB大容量存储设备(如闪存驱动器或USB硬盘)引导Raspberry Pi。连接USB设备(尤其是硬盘和SSD)时,请注意其电源要求。如果您希望在Pi上连接多个SSD或硬盘,则通常需要外部电源-有源硬盘盒或有源USB集线器。请注意,Pi 4B之前的型号存在已知问题,无法使用某些USB设备引导。树莓派400要从USB大容量存储设备启动Pi 400,只需使用Ra
2021-01-31 13:29:06 2354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人