Pull to refresh

Comments 6

Отличный обзор. Не могли бы рассказать о заполнении компонент в операции? Сначала указываем какие компоненты использовать в переменной (r1.xy__ — zw не будет изменены), а затем переменную-источник (r2.xyyy — z и w совпадают с у)? Что будет если z и w хранили данные до операции?
Спасибо.
Скажем так, переменные источники не меняются. Компоненты со знаком "_" тоже не меняются. То есть, если есть такой код:
umul  r0.xy__, r0.zwww, r1.yxxx

, то выполнение этой операции можно представить в следующем виде:
uint temp1 = r0.z * r1.y;
uint temp2 = r0.w * r1.x;

r0.x = temp1;
r0.y = temp2;

// r1 осталась неизменной
Ясно. Как раз спрашивал про компоненты переменной назначения.
Интересно, как-нить придумают язык, что бы можно было не искать программы с ярлыками CUDA или APP (оптимизированных под AMD что-то вообще не видел)?
Ощущуение, что маркетологи NVIDIA как-то более сильнее продавили рынок кудой, так как, имхо, программы для куды есть (различные кодеки, например), а вот под амд не видел.
Жаль, что нет стандарта GPU вычислений, либо драйверов для этих вычислений, что бы можно было писать на языке, а уже потом он транслировался в зависимости от типа карты (мечтать об одинаковых наборах комманд, видимо, совсем рано).
Я под AMD знаю только bitcoin-генераторы. Видимо, не зря их пишут под эти GPU, раз можно получить бОльшую производительность за те же деньги.
OpenCL должен стать таким стандартом, я думаю. Но на мой взгляд, ни Nvidia, ни AMD никогда не согласятся сделать поддержку этого стандарта такой же эффективной, как свои технологии (CUDA и CAL). Потому что в таком случае уже не будет разницы в архитектурах Nvidia и AMD. :)
Может некропост, но я сам очень хочу опробывать вычисления на ГПУ. В общем начал пробывать — calInit возвращает единицу (значит произошла ошибка), calGetErrorString возвращает «Operational error». Может у меня гугл неверный — но ничего дельного не нашел.
Sign up to leave a comment.

Articles