Прогнозуйте тривалість виконання для щільної лінійної алгебри


9

Я хотів би передбачити час виконання для щільних лінійних операцій алгебри на певній архітектурі, використовуючи певну бібліотеку. Я хотів би вивчити модель, яка наближає функцію

Fop::розміри вводучас виконання

для таких операцій, як матричне множення, додавання елементів, трикутне вирішення тощо.

Я підозрюю, що ці періоди виконання в основному передбачувані через регулярність операцій, коли ви виходите за рамки проблемних розмірів, які зручно вписуються в кеш.

Запитання:

  1. Чи реально це припущення? Чи може функція виконання майже детермінованою?
  2. Чи можу я припустити, що ця функція буде поліноміальною за розмірами входів? (тобто я розраховую, що щільна матриця помножиться на щось схожеαn×k×m для Ank×Bkm і α деякий скалярний коефіцієнт)
  3. Чи є десь попередня робота над цим?
  4. Мій поточний план полягає в тому, щоб зробити регресію найменших квадратів з величиною an L1регуляризатор. Будь-які інші пропозиції?

Редагувати: Щоб зрозуміти, я шукаю час виконання, а не FLOP або будь-який інший загальний показник ефективності. Я готовий обмежитися однією конкретною архітектурою.

Відповіді:


10

Я останнім часом працюю саме над цією темою. Ви можете поглянути на наш документ: http://arxiv.org/abs/1209.2364 .

Чому ви зацікавлені в передбаченні часу виконання лінійних алгебри? Чи плануєте ви використовувати модель з певною метою?


Дякуємо за посилання Я погляну. Мене це цікавить, бо я підозрюю ту ж причину, що і ви. Автоматизований вибір алгоритму та планування матричних виразів. У цій надзвичайно регулярній та передбачуваній області має бути можливим багато інакших неможливих проблем.
MRocklin

6

Попередньо існує багато роботи. Більшість розробників лінійної бібліотеки алгебри публікують результати роботи з точки зору продуктивності з плаваючою комою, яку можна перетворити на час виконання.

Наприклад, "Гуглінг" для "продуктивності DGEMM" дає таке: http://math-atlas.sourceforge.net/timing/3_5_10/index.html .

Як правило, ви можете очікувати, що відповіді будуть неточними. Будуть стрибки або шипи поблизу певних розмірів проблеми (які стосуються розмірів кешу). Ви також повинні очікувати плато в показниках, і, отже, лінійно-іші регіони для широкого діапазону розмірів проблем. Я не очікую, що поліномічні припади будуть дуже корисними.

Враховуючи широкі показники, спрямовані на тестування, може бути простіше складати підсумки та інтерполювати за потребою. Яка ваша мета?


1
Плато flop / s DGEMMвказує нан3регіоні, оскільки це швидкість росту флопів з розміром проблеми. Я погоджуюся, що кусочне розміщення повинно бути набагато кращим, ніж намагатися помістити один многочлен.
Джед Браун

Перетворити флопи на час виконання, на мій досвід, важко. Мені справді цікаво лише час виконання в моєму випадку. Я перевіряю можливість статичного планування.
MRocklin

На мій досвід, шипи / плато виникають лише для невеликих розмірів проблем. Після того, як ви вийдете за межі кешу, речі стають досить гладкими. Я погоджуюсь, що додавання фрагментів функцій, ймовірно, поліпшить форму.
MRocklin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.