Yoğun lineer cebir için çalışma zamanlarını tahmin etme


9

Belirli bir kütüphaneyi kullanarak belirli bir mimarideki yoğun doğrusal cebir işlemleri için çalışma zamanlarını tahmin etmek istiyorum. İşleve yaklaşan bir model öğrenmek istiyorum

Fop::girdi boyutları çalışma süresi

matris çarpma, element bilge ekleme, üçgen çözme, vb. işlemler için ....

Önbellekte rahatça uyan sorun boyutlarının ötesine geçtiğinizde, bu çalışma zamanlarının çoğunlukla operasyonların düzenliliği nedeniyle tahmin edilebilir olduğundan şüpheleniyorum.

Sorular:

  1. Bu varsayım gerçekçi midir? Çalışma zamanı işlevinin neredeyse belirleyici olması muhtemel mi?
  2. Bu işlevin girişlerin boyutlarında polinom olacağını varsayabilir miyim? (yani ben çarpma gibi bakmak şeye yoğun matris bekliyoruz içinαn×k×mAnk×Bkm ve α bazı skaler katsayı)
  3. Bu konuda önceden var olan bir çalışma var mı?
  4. Şu anki planım en küçük kareler regresyonunu bir L1regularizer. Başka öneriniz var mı?

Düzenleme: Açık olmak gerekirse ben FLOPs veya başka bir ortak performans metrik değil runtimes arıyorum. Kendimi belirli bir mimariyle kısıtlamak istiyorum.

Yanıtlar:


10

Son zamanlarda tam olarak bu konu üzerinde çalışıyorum. Makalemize göz atmak isteyebilirsiniz: http://arxiv.org/abs/1209.2364 .

Lineer cebir rutinlerinin çalışma zamanı tahmini ile neden ilgileniyorsunuz? Modeli belirli bir amaç için kullanmayı düşünüyor musunuz?


Bağlantı için teşekkürler. Bir bakacağım. Ben de bununla ilgileniyorum çünkü aynı nedenden şüpheleniyorum. Matris ifadeleri için otomatik algoritma seçimi ve zamanlaması. Bu son derece düzenli ve öngörülebilir alanda pek çok imkansız sorun mümkün olmalıdır.
MRocklin

6

Önceden var olan bir sürü iş var. Çoğu doğrusal cebir kütüphanesi geliştiricisi, çalışma sonuçlarını, çalışma sürelerine dönüştürülebilen kayan nokta performansı açısından yayınlar.

Örneğin "DGEMM performansı" için googling aşağıdakileri sağlar: http://math-atlas.sourceforge.net/timing/3_5_10/index.html .

Genellikle, cevapların sorunsuz olmasını bekleyebilirsiniz. Belirli sorun boyutlarının yakınında (önbellek boyutları ile ilgili) sıçramalar veya artışlar olacaktır. Ayrıca, geniş bir sorun boyutu aralığı için oranlarda ve dolayısıyla doğrusal-ish bölgelerinde yaylalar beklemelisiniz. Polinom uyumlarının çok yardımcı olmasını beklemiyorum.

Geniş tabanlı bir kıyaslama çabası göz önüne alındığında, sonuçları tablo haline getirmek ve gerektiğinde enterpolasyon yapmak daha kolay olabilir. Amacın nedir?


1
Bir flop / s plato bölgesindeki DGEMMgösteren birn3çünkü flopların sorun büyüklüğüyle büyüdüğü oran. Parçalı bir uyumun, tek bir polinomu uydurmaya çalışmaktan çok daha iyi olması gerektiğine katılıyorum.
Jed Brown

Flopları çalışma zamanlarına dönüştürmek benim deneyimime göre zor. Gerçekten sadece benim durumumdaki çalışma zamanlarını önemsiyorum. Statik programlamanın fizibilitesini test ediyorum.
MRocklin

Deneyimlerime göre sivri / platolar sadece küçük problem boyutları için ortaya çıkar. Bir kez önbellek dışına çıkmak şeyler oldukça pürüzsüz. Parçalı fonksiyonlar eklemenin muhtemelen uygunluğu geliştireceğine katılıyorum.
MRocklin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.