8.85 --fp16_format=format

半精度浮動小数点数を VFPv3 アーキテクチャのオプションの拡張として使用できます。形式が指定されていない場合は、__fp16 データ型を使用するとエラーになります。

構文

--fp16_format= format
format には以下のいずれかを指定できます。
alternative
範囲は拡大されますが、NaN 値や無限大値は持たない ieee の代替です。
ieee
IEEE 754 標準規格のリビジョンである IEEE 754r によって定義された、半精度 2 進浮動小数点形式です。
none
これがデフォルトの設定です。形式を指定しないことに相当し、__fp16 データ型を使用するとエラーになることを意味します。

制約条件

__fp16 データ型を使用する場合は、以下の制限が適用されます。
  • C または C++ の式で使用する場合、__fp16 型は単一精度に昇格されます。それに続く倍精度への昇格は、いずれかのオペランドで必要となった場合に発生することがあります。
  • 単一精度値は __fp16 に変換できます。倍精度値は単一精度に変換されてから、倍精度の丸めを伴う場合のある __fp16 に変換されます。これは、ARM アーキテクチャでは倍精度から 16 ビットの直接変換ができないためです。
  • fpmode=fast を使用した場合、半精度浮動小数形式との相互変換では浮動小数点の例外は発生しません。
  • 関数の正式な引数の型を __fp16 にすることはできません。ただし、__fp16 型の変数へのポインタを関数の正式な引数の型として使用することはできます。
  • __fp16 値は実際の関数の引数として渡すことができます。この場合、引数は単精度値に変換されます。
  • __fp16 は、関数の戻り値型としては指定できません。ただし、__fp16 型へのポインタは戻り値型として使用できます。
  • __fp16 値は、 float または double を返す関数の戻り値として使用した場合、単精度または倍精度の値に変換されます。
関連する概念
5.47 半精度浮動小数点数に対するコンパイラおよびライブラリサポート
関連する参考文書
8.86 --fpmode=model
18.3 NEON コンパイラ組み込み関数
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.