类 Fp16Conversions


  • public final class Fp16Conversions
    extends java.lang.Object
    fp16、bfloat16 和 fp32 之间的转换。
    • 方法摘要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 描述
      static float bf16ToFloat​(short input)
      将存储在 short 中的 bf16 值转换为 float 值。
      static java.nio.FloatBuffer convertBf16BufferToFloatBuffer​(java.nio.ShortBuffer buf)
      将存储为 short 的 bf16 值缓冲区转换为 float 缓冲区。
      static java.nio.ShortBuffer convertFloatBufferToBf16Buffer​(java.nio.FloatBuffer buf)
      将 float 缓冲区舍入为包含 bf16 值(在 Java 中存储为 short)的缓冲区。
      static java.nio.ShortBuffer convertFloatBufferToFp16Buffer​(java.nio.FloatBuffer buf)
      将 float 缓冲区舍入为包含 fp16 值(在 Java 中存储为 short)的缓冲区。
      static java.nio.FloatBuffer convertFp16BufferToFloatBuffer​(java.nio.ShortBuffer buf)
      将存储为 short 的 fp16 值缓冲区转换为 float 缓冲区。
      static short floatToBf16​(float input)
      将 float 转换为 bf16。
      static short floatToFp16​(float input)
      将 float 值转换为存储在 short 中的 fp16 值。
      static float fp16ToFloat​(short input)
      将存储在 short 中的 fp16 值转换为 float 值。
      static short mlasFloatToFp16​(float input)
      将 float 值舍入为 fp16。
      static float mlasFp16ToFloat​(short input)
      将 fp16 值向上转换为 float。
      • 从类 java.lang.Object 继承的方法

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 方法详细信息

      • convertFloatBufferToFp16Buffer

        public static java.nio.ShortBuffer convertFloatBufferToFp16Buffer​(java.nio.FloatBuffer buf)
        将 float 缓冲区舍入为包含 fp16 值(在 Java 中存储为 short)的缓冲区。

        遵守输入缓冲区的 position 和 limit。

        参数
        buf - float 缓冲区。
        返回
        存储为 short 的 fp16 值缓冲区。
      • convertFp16BufferToFloatBuffer

        public static java.nio.FloatBuffer convertFp16BufferToFloatBuffer​(java.nio.ShortBuffer buf)
        将存储为 short 的 fp16 值缓冲区转换为 float 缓冲区。

        遵守输入缓冲区的 position 和 limit。

        参数
        buf - 存储为 short 的 fp16 值缓冲区。
        返回
        float 值缓冲区。
      • convertFloatBufferToBf16Buffer

        public static java.nio.ShortBuffer convertFloatBufferToBf16Buffer​(java.nio.FloatBuffer buf)
        将 float 缓冲区舍入为包含 bf16 值(在 Java 中存储为 short)的缓冲区。

        遵守输入缓冲区的 position 和 limit。

        参数
        buf - float 缓冲区。
        返回
        存储为 short 的 bf16 值缓冲区。
      • convertBf16BufferToFloatBuffer

        public static java.nio.FloatBuffer convertBf16BufferToFloatBuffer​(java.nio.ShortBuffer buf)
        将存储为 short 的 bf16 值缓冲区转换为 float 缓冲区。

        遵守输入缓冲区的 position 和 limit。

        参数
        buf - 存储为 short 的 bf16 值缓冲区。
        返回
        float 值缓冲区。
      • fp16ToFloat

        public static float fp16ToFloat​(short input)
        将存储在 short 中的 fp16 值转换为 float 值。

        注意:在 Java 20 或更新版本中,此方法使用 Float.float16ToFloat,它可能使用 CPU 特定的指令进行转换,否则它使用 ORT 本地实现的转换操作。

        参数
        input - fp16 值。
        返回
        float 值。
      • floatToFp16

        public static short floatToFp16​(float input)
        将 float 值转换为存储在 short 中的 fp16 值。

        注意:在 Java 20 或更新版本中,此方法使用 Float.floatToFloat16,它可能使用 CPU 特定的指令进行转换,否则它使用 ORT 本地实现的转换操作。

        参数
        input - float 值。
        返回
        fp16 值。
      • mlasFp16ToFloat

        public static float mlasFp16ToFloat​(short input)
        将 fp16 值向上转换为 float。与 MLAS 中的转换相对应。
        参数
        input - 表示 IEEE 半精度 float 的 uint16_t。
        返回
        float 值。
      • mlasFloatToFp16

        public static short mlasFloatToFp16​(float input)
        将 float 值舍入为 fp16。与 MLAS 中的转换相对应。
        参数
        input - float 值。
        返回
        舍入为 IEEE 半精度值的值。
      • bf16ToFloat

        public static float bf16ToFloat​(short input)
        将存储在 short 中的 bf16 值转换为 float 值。
        参数
        input - 表示 bfloat16 值的 uint16_t。
        返回
        float 值。
      • floatToBf16

        public static short floatToBf16​(float input)
        将 float 转换为 bf16。对于次正规 float,可能不会生成正确的值。

        舍入到最近的偶数。

        参数
        input - float 输入。
        返回
        最接近 float 的 bfloat16 值。