- 博客(4)
- 收藏
- 关注
原创 GDB相关指令个人记录
编译(需要加-g调试模式):g++/gcc test.c -o test -g gdb test (若要显示代码界面,加-tui参数) 设置参数:(gdb) set args a b c 打断点:(gdb) b/break /path..../test.c:150 断点信息:(gdb) info b/break 删除断点:(gdb) delete breakpoint 2 进入代码界面:ctrl x +a 单步运行:(gdb) n/next 从开始执行到底或下一个断点:(gdb) r/ru
2023-04-23 17:26:44 121 1
原创 Float类型转half类型的实现
由于half指数位最小只能表示2^-14,因此当float指数位小于或等于0x70(并且float的bit数值大于0x33800000)时,转换为half后指数位必为0,而右移13bit后的小数位需要先在第10bit位补1,然后再右移(0x70 - float指数位数值 + 1) bit。当float值为5.9604644e-8(0x33800000),转换后的half值位5.97e-8(0x0001),因此当float值绝对值小于这个数值时,转换后的half就是0.0。
2023-04-20 09:57:39 965 2
原创 half(fp16)类型转float(fp32)类型的简单实现
half和float的数据格式half (fp16)组成:符号位 1 bit + 指数位 5 bits + 小数位 10 bits。指数位的表示范围是[2^-14, 2^15]。float (fp32)组成:符号位 1 bit + 指数位 8 bits + 小数位 23 bits。指数位的表示范围是[2^-126, 2^127]。算法原理只要half类型的值不是nan,则转换为float后,符号位不变。特殊值处理当half类型的绝对值为0.0 (0x000
2022-04-12 17:33:10 5109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人