ailev.ru

3 августа 2015 · Комментарий

Без заголовка

>и как раз подразумеваю неадекватность архитектур этих видюшек задачам глубоких архитектур Вы заблуждаетесь. Видюшка оптимизирована под параллельные сложения и умножения. Именно они и нужны массово при перемножении матриц, которые и используются для задач глубоких архитектур. Вас смущает регулярность операций? Так это и есть те три порядка распараллеливания, которые дают видюшке фору: именно 3072 потоковых процессоров в видюшке и позволяют одновременно делать 3000 операций перемножения и сложения: 3072*1ггц*2 операции = 6,144 GFLOPS -- для Titan X. (И от механизма действия FPGA этот принцип не сильно отличается, кстати). Нет какого-то способа уменьшить требования к производительности -- все элементы матрицы одинаково важны, сравните их со своим словарным запасом: какими слова из вашего лексикона вы готовы были бы пожертвовать? Даже если мы какие-то элементы занулим (пусть даже 3/4 матрицы), то нам потребуется 750 гораздо более сложных процессоров, которые будут управлять порядком вычислений, предсказывать переходы, и требовать разные данные (один посчитал быстрее, второй медленнее -- а значит, вспоминаем ограничения на произвольный доступ к памяти и почему L1, L2, L3 кеши всё ускоряют) -- и вместо роста производительности для несильно разреженной матрицы мы получаем большую просадку производительности.

К записи · К обсуждению