機械学習で使う用にhalf float(16-bit float)の演算ライブラリ作りました。と言ってもfloat型がIEEE 754の形式であることを仮定して、符号bitと指数部、小数部をそのままとってきてuint16_tに変換する、みたいな感じのお手軽実装ですが。 このライブラリの必要性 コンピューター将棋の評価関数の機械学習では、KPPT型の評価関数が主流で、その配列の大きさが1GB(次元数で言うと5億次元)程度になっています。今後、評価関数の次元数を増やそうと思ったときに、省メモリ化がどうしても必須になるので、half floatで計算してくれるライブラリを製作しました。 世の中にはすでにhalf floatのライブラリはいくつかあるのですが、わかりやすくシンプルに実装してあって、お手軽に使えそうなものがなかったので自作しました。 注意点 ちなみにソースコード中に出てくるs16,s