FROL
Читал у нескольких авторов о стеке, конечно его сделать можно. Я имел в виду что его нет изначально, и это дает некоторые проблемы для написания kd-tree.
_vasa_
> Архитектуры разные и точить видимо нужно, или схожесть есть? :)
Если в шейдерах не нужно заморачиваться над архитектурой... То почему нужно заморачиваться тут? Ну даст тебе это 5-10 лишних ФПС, ты больше потратишь времени на оптимизации... Не стоит оно того... Пиши правильный код и всё...
А где код работает медленее, то это уже проблемы железки...
Executor
Если один кадр пару часов делается на цп, то даже -1 fps или -5 это разница :)
Executor
> Если в шейдерах не нужно заморачиваться над архитектурой...
Ну х.з. я бы поспорил. Я так не думаю, что 5 фпс, разница в разы может быть. Если не влазишь в 32 регистра, то ахтунг полный на Nvidia.
Возьмем например вычисление шума перлина. Можно сразу считать его, а можно в текстуре предрассчитывать и фетчить слои оттуда.
На Nvidia намного быстрее способ с текстурами должен быть, а на ати наверное прямое вычисление, но х.з. я не пробовал именно шум перлина - это так идея пришла в голову.
Реальный пример - умножение матриц. Посмотри как оно реализовано в CUDA и STREAM - ну совсем по-разному.
_vasa_
Вообще почитай про STREAM и CUDA - там довольно много инфы по архитектуре и тому как все это работает и почему надо так делать а не иначе.
_vasa_
> Я имел в виду что его нет изначально, и это дает некоторые проблемы для
> написания kd-tree.
Да какие проблемы то? делаешь так float2 stack[32]; и все.
FROL
> Реальный пример - умножение матриц. Посмотри как оно реализовано в CUDA и STREAM - ну совсем по-разному.
В НВСДК умножение на вектор реализовано семи разными вариантами... И что теперь?
Это ни о чём не говорит... Писали разные люди, написали поразному...
Вот если пример НВ взять, и взять пример АТИ, позапускать на АТИ и НВ картах и увидеть, что пример НВ даёт на НВ большое преимущество, а на Ати нет, и соответственно пример АТИ даёт на АТИ большое преимущество, а на НВ нет, тогда можно говорить о том, что имеет смысл оптимизировать под каждое железо...
Executor
В общей сложности нужно около 64 регистра на ядро. И тем не менее это нормально, т.к. еще сократить удастся врядли. Ожидаемый результат - в 2-6 раз быстрее на 8800 ультра в сравнении со средним двух- или одноядерником.
Ну ты же выставляешь программно просто количество блоков, тебе же не придётся код переписывать...
Executor
> тебе же не придётся код переписывать...
Надеюсь...
Кто уже успел поюзать вот это http://forums.nvidia.com/index.php?showtopic=149959 ?
_vasa_
> В общей сложности нужно около 64 регистра на ядро.
Это очень плохо. Попробуй поставить ограничение в 32 регистра (там флаг есть у компилятора) и часть данных положить в шаред (только чуть-чуть) и локальную память (они сами в нее положатся, если регистров не хватает).
А что за алгоритм, почему так много регистров надо?
FROL
> что за алгоритм
Глянь тут, примерно тоже нужно
http://www.graphicon.ru/proceedings/2009/conference/se12/97/97_Paper.pdf
Вопрос, в чем отличие карт quadro, что они могут предложить в плане количества регистров и прочего?
Вот в спеках квадро >Unlimited programmability. Что это реально значит? Прочел что в квадро есть аппaратный BRDF (Bidirectional reflectance distribution function), как раз для рейтрейсинга, только как его использовать?
ИМХО, квадра - это чисто маркетинговая фигня. ничего в ней нет особенного по-моему.
>аппaратный BRDF (Bidirectional reflectance distribution function), как раз для рейтрейсинга.
а что именно под этим понимается? А то фонг - это тоже BRDF как бы
>Вопрос, в чем отличие карт quadro, что они могут предложить в плане количества регистров и прочего?
а в той спеке которую ты читаешь не написан размер регистрового файла у квадры на один SM?
>Глянь тут, примерно тоже нужно
Да, я знаю эту статью)
Ну там написано же как регистры экономить.
У тебя должно быть 16-20 регистров на kd-tree траверс и 32 на ray-triangle intersection. 2 разных кернела. 64 регистра это ахтунг.
FROL
Про brdf что они подразумевают не знаю, там всего одна фраза написана, что оно вот есть.
> размер регистрового файла у квадры на один SM
Нет, не нашел еще хорошей спеки, дефицит.
Про 64 понял, значит ошибся я.
FROL
А ты не автор статьи ? :))
Тема в архиве.