密な線形代数の実行時間を予測する


9

特定のライブラリを使用する特定のアーキテクチャでの密な線形代数演算の実行時間を予測したいと思います。関数を近似するモデルを学びたい

Fop::入力サイズランタイム

行列乗算、要素ごとの加算、三角解法などの操作の場合...

これらのランタイムは、キャッシュに快適に収まる問題サイズを超えた場合の操作の規則性により、ほとんどが予測可能であると思います。

質問:

  1. この仮定は現実的ですか?実行時関数はほぼ確定的でしょうか?
  2. この関数は入力のサイズが多項式であると想定できますか?(つまり、密行列の乗算は、といくつかのスカラー係数のようになると期待します)A N K × BのK M ααn×k×mAnk×Bkmα
  3. これに関する既存の作業はどこかにありますか?
  4. 私の現在の計画は最小二乗回帰を行うことです。他に何か提案はありますか?L1

編集:明確にするために、FLOPSやその他の一般的なパフォーマンスメトリックではなく、ランタイムを探しています。私は、特定の1つのアーキテクチャーに制限するつもりです。

回答:


10

私は最近、まさにこのトピックに取り組んでいます。あなたは私たちの論文を見てみたいかもしれません:http : //arxiv.org/abs/1209.2364

線形代数ルーチンのランタイム予測に興味があるのはなぜですか?このモデルを特定の目的で使用しますか?


リンクをありがとう。見てみます。あなたと同じ理由だと思うので、これに興味があります。自動化されたアルゴリズムの選択と行列式のスケジューリング。この非常に規則的で予測可能なドメインでは、他の方法では不可能な多くの問題が発生する可能性があります。
MRocklin 2012

6

既存の作業がたくさんあります。ほとんどの線形代数ライブラリの開発者は、ランタイムに変換できる浮動小数点パフォーマンスに関してパフォーマンス結果を公開しています。

たとえば、「DGEMMパフォーマンス」をグーグルすると、次のような結果になります。http: //math-atlas.sourceforge.net/timing/3_5_10/index.html

一般に、答えは滑らかでないと予想できます。特定の問題サイズ(キャッシュサイズに関連)の近くでジャンプまたはスパイクが発生します。また、レートのプラトーが予想されるため、幅広い問題サイズで線形に近い領域が予想されます。多項式近似が非常に役立つとは思いません。

広範囲にわたるベンチマークの取り組みを考えると、結果を表にして必要に応じて補間する方が簡単な場合があります。あなたの目標は何ですか?


1
フロップのプラトーはリージョンをDGEMM示します。これは、フロップが問題のサイズに伴って増加しているためです。私は、単一の多項式を当てはめるよりも、区分的当てはめの方がはるかに優れていることに同意します。n3
ジェドブラウン

私の経験では、フロップをランタイムに変換することは困難です。私の場合は本当にランタイムのみを気にします。静的スケジューリングの実現可能性をテストしています。
MRocklin

私の経験では、スパイク/プラトーは小さな問題のサイズでのみ発生します。キャッシュを超えてしまうと、状況はかなりスムーズになります。区分的関数を追加すると、近似が改善されることに同意します。
MRocklin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.