Comments 25
Ускорители от AMD сейчас очень даже хорошо используются под OpenCL, попробуйте найти в продаже R9 280X по нормальной цене :)
GPU ускорители много где используются для рассчётов. Из достаточного серъёзного — например, для высокочастотных торгов на бирже (я видел реализации на NVidia CUDA).
А дефицит в каких-то регионах не является главным показателем. Это скорее показатель поведения поставщиков, которые почему-то не удовлетворяют спрос.
Например, R9 280X есть в продаже на NewEgg, Overstock, Amazon. На каждом сайте есть порядка десятка разных моделей. Высылают в тот же день.
А дефицит в каких-то регионах не является главным показателем. Это скорее показатель поведения поставщиков, которые почему-то не удовлетворяют спрос.
Например, R9 280X есть в продаже на NewEgg, Overstock, Amazon. На каждом сайте есть порядка десятка разных моделей. Высылают в тот же день.
Если Вы имеете ввиду, что покупать её именно для GPGPU редко бывает оправдано, то скорее всего да. Но всё же, идея запуска параллельных частей кода на множестве разных устройств. хороша.
Наоборот, я думаю что это оптимальный вариант для GPGPU с производительностью свыше 95% от теоретической и повышенный спрос на эти карты сейчас обусловлен именно их использованием в качестве «числодробилок» для майнинга криптовалют, где их покупка более чем оправдана.
В этом вопросе не могу быть уверенным, но это интересный факт. Всегда было интересно сколько нужно потратить на железо чтобы bitcoin-майнинг был оправданным.
сколько нужно потратить на железо чтобы bitcoin-майнинг был оправданным
Практически без разницы, запустить 1 ускоритель или 100 одинаково оправдано, просто 100 принесут в 100 раз больше прибыли.
Если не брать в расчет экономию от использования систем из нескольких видеокарт, то время окупаемости 1 карты или 100 будет одинаковое, и зависит только от колебаний курса и сложности выбранной для майнинга валюты.
Спасибо за интересную статью.
Предполагается ли автоматическая параметризация запущенного приложения в зависимости от доступных ресурсов (например у одного пользователя есть MIC, а у другого только GeForce)?
Предполагается ли автоматическая параметризация запущенного приложения в зависимости от доступных ресурсов (например у одного пользователя есть MIC, а у другого только GeForce)?
Автоматическая параметризацию одного и того же кода под любые ускорители — ключевая идея обширного параллелизма и его реализации в OpenCL. MIC, GeForce или вообще только CPU — работать будет всегда: просто выбираем желаемое устройство из списка — и вперед. Системы из нескольких ускорителей (одинаковых или разных), впрочем, в OpenCL уже требуется адаптировать. Кроме того, хотя OpenCL-код запустится везде, его оптимизация может быть зависимой от устройства и плохо переноситься (скажем на одном виде ускорителей будет 90% от теоретической пиковой скорости, на других — всего 40%). Плюс эта портабельность требует включения исходного кода CL-ядер в состав программы (тогда он компилируется на лету драйвером аналогично шейдерам), и кто-то может предпочесть распространять сугубо бинарники, заточенные под какую-то конкретную платформу
Скоро круг замкнётся.
В 1992 году, когда компьютеры уже стали достаточно проворны, чтобы работать с 3D-графикой, появилось 2 стандарта — OpenGL и Reality Lab, который впоследствии был переименован в Direct3D. В 1995 году началась гонка стандартов. Сперва активно побеждала Microsoft, так как у нее был козырь — Windows был монополистом на десктопах.
Но графику на процессоре рисовать очень тяжко. Одно ядро, считающее перемножение матриц 4x4 последовательно, было загружено на проценты от своих возможностей и работало ужасно медленно. Чтобы исправить это, сперва появился Intel MMX. Потом AMD 3DNow! Потом SSE… Но даже возможность перемножать матрицы одной инструкцией не решала проблему. Игры стали шустрее и красивее, но расчет светотени по-прежнему включал только «пластик».
Компании решили добавлять процессоры с множеством примитивных ядер в видеокарты. Первая карточка Voodoo появилась раньше, чем у кого-либо в процессоре домашнего ПК было более одного ядра. А в ней ядер уже было несколько…
В результате расчет графики полностью лёг на видеокарты. Задачи рисования отделились от процессоров, которые не подходили для них. Вам надо было задать геометрию и сказать, где на экране оверлей. Видюха делала всё сама.
Однако людям хотелось видеть хитрую светотень, отражения и много другого, что требовало вмешательства в арифметику расчета. Так появились шейдеры. И этот момент был знаковым — в компьютере стало на одно программируемое устройство больше.
Шейдеры развивались, пока не стало возможно решать на них серьёзные математические задачи.
В итоге OpenGL превратился в набор команд по загрузке текстур, геометрии и шейдеров в видяху (я имею в виду OpenGL3). Вы, по сути, просто задаете конвейер и командуете «поехали». Вся программа написана на GLSL.
И в какой-то момент стало понятно, что всё это великолепие годится не только для графики — параллелизуемых задач куда больше. Так появились CUDA и OpenCL.
А теперь идет обсуждение того, чтобы вернуть «графический ускоритель» (если его всё еще можно так называть) обратно в процессор. Скоро в наших процессорах будет по 30-50 ядер. Возможно, некоторые из них будут уметь меньше, чем остальные, но это уже не будут видеокарты. Видеокарта снова будет заниматься основным делом — переносить массив в памяти на дисплей.
Скоро круг замкнётся.
В 1992 году, когда компьютеры уже стали достаточно проворны, чтобы работать с 3D-графикой, появилось 2 стандарта — OpenGL и Reality Lab, который впоследствии был переименован в Direct3D. В 1995 году началась гонка стандартов. Сперва активно побеждала Microsoft, так как у нее был козырь — Windows был монополистом на десктопах.
Но графику на процессоре рисовать очень тяжко. Одно ядро, считающее перемножение матриц 4x4 последовательно, было загружено на проценты от своих возможностей и работало ужасно медленно. Чтобы исправить это, сперва появился Intel MMX. Потом AMD 3DNow! Потом SSE… Но даже возможность перемножать матрицы одной инструкцией не решала проблему. Игры стали шустрее и красивее, но расчет светотени по-прежнему включал только «пластик».
Компании решили добавлять процессоры с множеством примитивных ядер в видеокарты. Первая карточка Voodoo появилась раньше, чем у кого-либо в процессоре домашнего ПК было более одного ядра. А в ней ядер уже было несколько…
В результате расчет графики полностью лёг на видеокарты. Задачи рисования отделились от процессоров, которые не подходили для них. Вам надо было задать геометрию и сказать, где на экране оверлей. Видюха делала всё сама.
Однако людям хотелось видеть хитрую светотень, отражения и много другого, что требовало вмешательства в арифметику расчета. Так появились шейдеры. И этот момент был знаковым — в компьютере стало на одно программируемое устройство больше.
Шейдеры развивались, пока не стало возможно решать на них серьёзные математические задачи.
В итоге OpenGL превратился в набор команд по загрузке текстур, геометрии и шейдеров в видяху (я имею в виду OpenGL3). Вы, по сути, просто задаете конвейер и командуете «поехали». Вся программа написана на GLSL.
И в какой-то момент стало понятно, что всё это великолепие годится не только для графики — параллелизуемых задач куда больше. Так появились CUDA и OpenCL.
А теперь идет обсуждение того, чтобы вернуть «графический ускоритель» (если его всё еще можно так называть) обратно в процессор. Скоро в наших процессорах будет по 30-50 ядер. Возможно, некоторые из них будут уметь меньше, чем остальные, но это уже не будут видеокарты. Видеокарта снова будет заниматься основным делом — переносить массив в памяти на дисплей.
Скоро круг замкнётся.
Я думаю, видеокарты вымрут только вместе с форм-фактором классического ПК.
Потому что вычислительной мощности никогда не бывает много, а отдельный девайс, занимающий куда больше места, чем процессор, и потребляющий дополнительные 300W, всегда будет в разы мощнее.
Другие форм-факторы — планшеты, ноутбуки, телефоны — другое дело. Там разумно мощность разменять на мобильность и энергоэффективность.
Потому что вычислительной мощности никогда не бывает много, а отдельный девайс, занимающий куда больше места, чем процессор, и потребляющий дополнительные 300W, всегда будет в разы мощнее.
Другие форм-факторы — планшеты, ноутбуки, телефоны — другое дело. Там разумно мощность разменять на мобильность и энергоэффективность.
Мысль разумная. Но можно ведь и по-другому посмотреть на этот вопрос.
Стандарт IBM PC, о котором мы с вами говорим — модульный стандарт. И поскольку он, по сути, оброс сложностями, «костылями» и устарел по сути, должен появиться альтернативный модульный стандарт. Вот, например.
Возможно, имеет смысл рассмотреть архитектуру, в которой CPU — не центр вселенной, а рядовое устройство. И в этой системе-таки разумнее будет не объединять функции вывода графики и параллельного расчета. А существующий OpenGL уйдет в историю, как частный случай OpenCL.
Стандарт IBM PC, о котором мы с вами говорим — модульный стандарт. И поскольку он, по сути, оброс сложностями, «костылями» и устарел по сути, должен появиться альтернативный модульный стандарт. Вот, например.
Возможно, имеет смысл рассмотреть архитектуру, в которой CPU — не центр вселенной, а рядовое устройство. И в этой системе-таки разумнее будет не объединять функции вывода графики и параллельного расчета. А существующий OpenGL уйдет в историю, как частный случай OpenCL.
Стандарт razer не отвечает на проблему, потому что место под видеокарту всё равно зарезервировано, и отказавшись от её установки, не получится из стационарного девайса сделать мобильное.
Архитектура, где CPU — не центр вселенной — вообще фантастика, с учётом кол-ва софта (прежде всего ОС), спроектированных под неё. Смена парадигмы теоретически возможна, но это дело не одного и не двух десятков лет.
Архитектура, где CPU — не центр вселенной — вообще фантастика, с учётом кол-ва софта (прежде всего ОС), спроектированных под неё. Смена парадигмы теоретически возможна, но это дело не одного и не двух десятков лет.
Как показал опыт larrabee, софтверные решения не конкурентоспособны, даже имея аппаратные текстурные семплеры и прочее. В последних процессорах Интел, векторные юниты СPU мощней чем у GPU, однако вряд ли захотите использовать первый для 3D графики.
Какие последние процессоры Вы имеете ввиду?
Но ведь не мощнее они. И как бы там ни было, это не снимает проблему программирования таких гетерогенных систем (на одном кристалле процессоры или в разных устройствах).
4770K быстрее на float и на double даже более чем вдвое.
1 из 4 x86-ядер 4770К против 1 из 2304 CUDA-ядер GTX780?
причём тут GTX780? причём тут тем более CUDA? вы с какой луны упали? =)
У 4770K пик у SIMD 448GFlops / 224 в double а у его GPU — GT2 400 и 100 соответственно.
о чём я и говорил в комментарии habrahabr.ru/post/209606/#comment_7242720
У 4770K пик у SIMD 448GFlops / 224 в double а у его GPU — GT2 400 и 100 соответственно.
о чём я и говорил в комментарии habrahabr.ru/post/209606/#comment_7242720
Теперь я понял этот комментарий. Сначала я подумал, что CPU Intel сравнивается с GPU другого производителя.
Я тоже подумал, что имеется ввиду сравнение CPU и GPU разных фирм. То что векторные операции на CPUработают быстро это на сегдоняшний день хорошее дополнение к производительности современных видеокарт.
Нельзя видать Xeon Phi и Tesla в одну кучу. У Phi приемущество в отсутствии проблем с branch divergence. CUDA с этой проблемой безусловно борется, но по крайней мере каждое ядро Phi может автономно что-сто считать, а на CUDA такое не возможно.
Sign up to leave a comment.
Будущее программирования аппаратных ускорителей