Прогрев )
ну тут скорее всего первичная инициализация буферов (???) и подобное я не мастак, но думаю из-за этого первая итерация медленная
а не кажется ли, что использовать Instant + elapsed для бенчей плохая идея?. есть же cargo bench + скрипты бенча
и далее, вы уверены, что ваши матрицы сразу оказались на gpu?. на каком моменте? на new/rand или в момент их первого использования это так, чисто на фигня/подумать вопрос (апи не знаю:) ) === немного оффтопа, но начал вопрос не я. про приложение сказать ничего не могу. и даже не обязательно эпл, но на армах действительно есть нейронные ОТДЕЛЬНЫЕ модули проца. и в самых обычных телефонах они моментом встречаются. сам я их никогда не использовал 😅
Не сразу, но учитывая скорости передачи данных на GPU это должно быть несколько мс, никак не 480. И почему тогда нет разницы между перемещением двух матриц 512х512 (т.е. всего 2МБ) и 512 таких же матриц – все это занимает одинаковое время. Более вероятно, что CUDA что-то компилирует, разворачивает граф вычислений или типа того
да, забыл, компиляция же еще.. но в любом случае, при сравнении с cpu эти аппарат телодвижения тоже надо учитывать.
Загрузка матриц из хоста на карту занимает долгое время.
Не должно быть так много https://habr.com/ru/companies/dbtc/articles/498374/
Обсуждают сегодня