fpmul_conf, fpmac_conf - 2024.2 日本語 - XD100

Vitis チュートリアル: AI エンジン開発 (XD100)

Document ID
XD100
Release Date
2024-12-06
Version
2024.2 日本語

これらの関数は、完全に設定可能な fpmul および fpmac 関数です。複素浮動小数点数の各部分は異なる方法で処理されるので、出力は常に 8 つの値を持つと考えることができます。vector<cfloat,4> は、real0 - complex0 - real1 - complex1 … を反復するループができます。この機能により、柔軟性ができ、共役の演算をインプリメントできるようになります。

vector<float,8> fpmac_conf(vector<float,8> acc, vector<float,32> xbuf, int xstart, unsigned int xoffs, vector<float,8> zbuf, int zstart, unsigned int zoffs, bool ones, bool abs, unsigned int addmode, unsigned int addmask, unsigned int cmpmode, unsigned int & cmp)

乗算結果を戻します。

パラメーター 説明
acc 現在のアキュムレータ レジスタの値。このパラメーターは fpmul_conf には存在しません。
xbuf 最初の乗算入力バッファー。
xstart X の全レーンの開始オフセット。
xoffs レーンあたり 4 ビット: X の追加のレーン依存オフセット。
zbuf オプション 2 つ目の乗算入力バッファー。zbuf が指定されない場合、xbuf が 2 つ目のバッファーとして使用されます。
zstart Z の全レーンの開始オフセット。コンパイル時の定数である必要があります。
zoffs レーンあたり 4 ビット: Z の追加のレーン依存オフセット。
ones true の場合、Z からのレーンはすべて 1.0 に置き換えられます。
abs true の場合、絶対値は累積の前のものが使用されます。
addmode fpadd_add (すべて add)、fpadd_sub (すべて sub)、fpadd_mixadd または fpadd_mixsub (add-sub または sub-add ペア) のいずれかを選択します。これは、コンパイル時間定数にする必要があります。
addmask 8 x 1 LSB ビット: ビットが設定される場合 (addmode によって異なる)、対応するレーンがネゲートされます。
cmpmode 1 レーンあたりのアキュムレータと乗算結果の間の最小値を選択するには fpcmp_lt を、最大値を選択するには fpcmp_ge を、通常の合計を選択するには fpcmp_nrm を使用します。
cmp オプション 8 x 1 LSB ビット: fpcmp_ge または fpcmp_lt を "cmpmode " で使用する場合、アキュムレータが選択されると、ビットが設定されます (レーンごと)。