问题标签 [half-precision-float]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 使用 16 位浮点数填充 MTLBuffer
我正在用 float2 向量填充 MTLBuffer。缓冲区正在创建和填充,如下所示:
在我的 Metal 文件中,缓冲区的访问方式如下:
我需要在我的 Metal 计算内核中使用半精度浮点数。在 Metal 方面,只需为数据类型指定 half2 即可。
在 CPU 方面,用半精度浮点数填充缓冲区的最佳方法是什么?
numpy - 为什么 Python 和 CUDA 不支持半精度复数浮点运算?
NumPY 具有对应于两个 float32 的complex64 。
但它也有 float16,但没有 complex32。
怎么来的?我有涉及 FFT 的信号处理计算,我认为我可以使用 complex32,但我不知道如何到达那里。特别是我希望在 NVidia GPU 上使用cupy加速。
然而,float16 在 GPU 上似乎更慢而不是更快。
为什么不支持和/或忽略半精度?
binary - 半精度浮点
我有一个关于半精度 IEEE-754 的小问题。
1)我有以下练习: 13,7625 应该写成 16 位(半精度)
所以我开始将数字从 DEC 转换为二进制,我得到了 13,7625 = 1101.1100001100 2
总而言之,它将是 1.1011100001100 * 2³。
- 符号位为 0,因为数字是正数。
- 尾数应有十位 = 101 110 0001
- 指数有 5 位 =bias(15) + 3 = 18 因此指数是 10010,这是该死的问题。
我的教授给了我们解决方案,据我所知,我做了非常正确的尾数和二进制转换,但对于指数,他说它是 19=10011,但我不明白。bais可以是16吗?根据维基百科,它的 - 15 为半精度。- 127 为单精度。- 双精度为 1032。
你能指出我做错了什么吗?
2)如果我们有以下情况,另一个问题是指数偏差:1个符号位+ 4个尾数位+ 3个指数位。为什么?
谢谢。
deterministic - Jetson TX2 上的 TensorRT“浮点 16”精度模式是否不确定?
我正在使用 TensorRT FP16 精度模式来优化我的深度学习模型。我在Jetson TX2上使用了这个优化模型。在测试模型时,我观察到 TensorRT 推理引擎不是确定性的。换句话说,我的优化模型为相同的输入图像提供了 40 到 120 FPS 之间的不同 FPS 值。
当我看到关于 CUDA 的评论时,我开始认为非确定性的根源是浮点运算:
“如果您的代码使用浮点原子,结果可能因运行而异,因为浮点运算通常不是关联的,并且当使用原子时,数据进入计算的顺序(例如总和)是不确定的。 "
FP16、FP32 和 INT8 等精度类型是否会影响 TensorRT 的确定性?还是什么?
你有什么想法吗?
此致。
c++ - 将 IEE 半精度浮点数转换为十进制时出现转换精度错误
从 16 位半精度浮点格式到十进制的转换过程中出现了一些精度错误。它能够准确地转换某些数字,同时对其他数字不准确。
该代码最初设计用于 32 位单精度浮点到十进制的转换。因此,我尝试对其进行编辑以适应 16 位半精度浮点格式。结果,获得的最终值最终是预期值的一半。
例如。期望值是1800
,结果是900
。
因此,我决定* 2
在最后的操作中添加一个。我不确定如何修复当前的精度误差,以及为什么结果也是预期值的一半。
下面包括我用各自的结果编辑的代码。
我使用的 16 位浮点值是:0101010100010011
预期结果:81.2
实际结果:81.1875
python - 如何在张量流上使用 fp16(Eigen::half) 进行卷积
如何使用 tensorflow 在 GPU 上使用 fp16 进行卷积?(使用 __half 或 Eigen::half 的 python api)。
我想在 tensorflow 上用 fp16 测试一个模型,但我被卡住了。实际上,我发现 tensorflow 中的 fp16 卷积似乎将 fp32 卷积的结果转换为 fp16,这不是我需要的。
我试图给 tf.nn.conv2d 一个 fp16 格式的 fp16 输入,并给 tf.nn.conv2d 一个 fp32 格式的 fp16 输入(tf.cast 到 fp32)然后 tf.cast 结果到 fp16,他们给出了完全相同的结果。但正如我所想,在 fp16 中进行卷积与在 fp32 中进行卷积然后将其转换为 fp16 是不同的,我错了吗?请帮助我,谢谢。
上述两个函数给出相同的结果,假设最终的“打印”结果为零。
fp16卷积和fp32卷积的结果应该不一样(在我看来)。如何使用 tensorflow 在 GPU 上使用真正的 fp16 进行卷积?(使用 __half 或 Eigen::half 的 python api)
c++ - 半精度浮点数
我想在 ARM 处理器上使用 c++ 中的半精度浮点数。我想将半精度数用于算术目的。我不知道如何在 C++ 中定义半数?C++中有半数的数据类型吗?
提前致谢
c++ - 半精度数的数学库
我想在 Cortex-A76 上使用半精度算术。我安装了 clang 编译器以使用 _Float16 数据类型(用于 16 位算术目的)。
我想知道是否有任何半精度数学函数库?(比如四精度数)或者哪些数学函数可用于半精度数?我检查了 math.h 库,其中有一些函数只用于 double 和 float。我对吗?
tensorflow - 在 fp16 中使用 Keras/TensorFlow 进行训练/RTX 卡的半精度
我刚得到一个 RTX 2070 Super,我想尝试使用带有 TensorFlow 后端的 Keras 进行半精度训练。
到目前为止,我发现了类似这样的文章,建议使用此设置:
该网络是一个简单的 4 层 CNN,用于音频分类。
我的输入数据是之前生成的 NumPy 3D 数组(使用 LibROSA 提取的音频 MFCC 特征)。该数据是使用 CPU 生成的,我知道这些值保存为 32 位浮点数。
当我尝试使用这些数据训练我的网络时,我收到以下错误:
TypeError:传递给“合并”操作的“输入”的列表中的张量具有不完全匹配的类型 [float16, float32]。
在另一篇文章中,我读到我还应该“在 SoftMax 层之前转换回 FP32”,这让事情变得更加令人困惑......
我真的很感激一些方向。
谢谢!
tensorflow - 对象检测 API (tensorflow) 中的 fp16 支持
对象检测 API [功能请求] 中的 fp16 支持 · 问题 #3706 · tensorflow/models https://github.com/tensorflow/models/issues/3706
我在github问题上问过:fp16 support in the Object Detection API (tensorflow),但都没有解决问题,所以只能来stackoverflow寻求答案。我的tf版本:1.14,显卡:Tesla T4。