1、最近朋友要我开发一个16*16矩阵求逆的算法,这个算法我早已实现,寻思没啥大问题,就开始做了,做一半发现入坑了,因为我也是第一次知道,半精度浮点数属于一个新的数据类型。float16是英伟达做并行计算为减少存储空间而定义的新的数据格式,只占用16位,相当于2个字节的内存,在IEEE 754-2008中,它被称作binary16。
2、关于float16的计算
直接上链接,下面这篇文章对float32与float16做了详细的分析,然而对于我们码农来说,没用
3、关于float16的使用办法
第2节是float16的计算方法,对我们来说基本可以不看。本节给出float16的下载链接,调库才是我们程序员应该做的事情。需要注意的是,这个c++库函数只能在VS2017版本以上调用。
刚开始看文档说c++ 11.0版本就行,我电脑c++版本都16了,寻思没啥问题,干了一下午都不行,于是换成了vs2017完美解决。
half: Half-precision floating-point libraryhttp://half.sourceforge.net/4、关于使用float16数据格式在vhls中采用svd分解求逆算法:
和以前没啥区别,因为官方的float16库已经很完整了,甚至支持三角函数、开方、指数、与float16/32/64四则运算等高级算法。四则运算直接用键盘上的+、-、*、/即可完成flot16的操作。
唯一的不同是代码结构更加复杂
5、实验部分
本节给出本人基于float16开发的16*16矩阵求逆截图。需要代码的请联系本人邮箱