ATLAS がパフォーマンスを大幅に向上させる行列計算アルゴリズムの「ブロッキング」または「タイリング」バージョンを使用することはかなりよく知られています。
また、ATLAS には、手動で計算されたアーキテクチャのデフォルトがいくつかあるようです。また、検索を実行して他の値を決定することもできますNB
(#define
ブロック数を表すと思われるマクロ)。
しかし、それはどのように機能しますか?値はどのように決定されますか? アルゴリズムは、ある種の最適値が見つかるまで、モンテカルロ スタイルのさまざまな値で何度も実行されますか?
ここも仮説です。ブロックされた ATLAS アルゴリズムを C++ テンプレートにコピーし、128 ビットの有理型を持っていたとします。二重バージョンのアルゴリズムからの ATLAS 調整値からNB
何らかの方法でアルゴリズムの有理バージョンを導出できますか?NB