MaxFX, так держать.
Однако в Вашу статью вкралась идеологическая ошибка. Размер грида равный 1 никогда не позволит выжать максимум мощи GPU при такой 100% распараллеливаемой задаче как сложение векторов. Да, формально код написан верно, но скорость работы будет на порядок меньше, чем если написать правильно. А правильно будет загрузить все стрим процессоры задачей, задав меньше размер блока и больше размер грида.
Вот например размер блока 32 треда (один варп), размер грида — 16 блоков. В таком случае разные части массива будут обрабатываться параллельно. Пока весь процесс обработки заключен в одном блоке — работает один из десятков процессоров, а остальные простаивают.
Это вряд ли, но если Вас смущает выяснение таких подробностей на публике — мы можем переместиться в PM. Ведь Ваш работодатель — это не секрет, надеюсь? =)
Вы когда-нибудь писали на C99? Скажу я Вам — это ад! Есть подмножество отличий C от C++, которые просто необходимы для написания понятного maintainable кода. Это, например, namespace, определение переменных в любом месте кода, классы, шаблоны (возможно забыл что-то еще).
5 секунд — это лимит на исполнение одного kernel'я, а в консьюмерских задачах кернели отрабатывают зачастую за миллисекунды.
И никаких камней нет, потому что ATI имеет те же проблемы.
5 секунд — это всего лишь время через которое ОС посчитает что вычисления захватили ресурсы видеокарты и снимет процесс.
Если покупается GPU для специальных рассчетов, то монитор к ней подключать не следует, и в таком случае Windows watchdog не срабатывает, можно считать сколько нужно.
Это спорно, к тому же заточка многих игр под nVidia нивелирует незначительный прирост в производительности. Ну а вычисления на GPU пока массово идут под брендом CUDA.
интересно какова максимальная удаленность датчика от детектора, при котором происходит срабатывание.
еще напрягает число 18 мес — т.е. по прошествии 18 месяцев надо менять датчик. а если учесть, что они будут вешаться на вещи не одновременно, а инкрементивно, это будет создавать дополнительный напряг.
имхо будущее за пассивными радиометками по типу тех, которые используются в прокскартах (метро, бейджи). например так: на пульт клеится бумажная антеннка, в которой прошит id. когда надо сделать поиск, передатчик излучает мощный электромагнитный импульс, антенны отвечают. дальше по аналогии с девайсом из поста.
Понял вопрос! Нет, программирование на CUDA никоим образом не завязано на графическую подсистему (кроме косвенной связи — часто графическая система работает через видеокарту, на которой исполняется программа для CUDA, что может вызываеть разные эффекты, как например Watchdog timeout под Win).
Насколько я понимаю, стандарт как стандарт не привязан к платформе. Он был изначально предложен Apple, а поддерживать его будут естественно все кто подсуетятся.
Однако в Вашу статью вкралась идеологическая ошибка. Размер грида равный 1 никогда не позволит выжать максимум мощи GPU при такой 100% распараллеливаемой задаче как сложение векторов. Да, формально код написан верно, но скорость работы будет на порядок меньше, чем если написать правильно. А правильно будет загрузить все стрим процессоры задачей, задав меньше размер блока и больше размер грида.
Вот например размер блока 32 треда (один варп), размер грида — 16 блоков. В таком случае разные части массива будут обрабатываться параллельно. Пока весь процесс обработки заключен в одном блоке — работает один из десятков процессоров, а остальные простаивают.
И никаких камней нет, потому что ATI имеет те же проблемы.
Если покупается GPU для специальных рассчетов, то монитор к ней подключать не следует, и в таком случае Windows watchdog не срабатывает, можно считать сколько нужно.
еще напрягает число 18 мес — т.е. по прошествии 18 месяцев надо менять датчик. а если учесть, что они будут вешаться на вещи не одновременно, а инкрементивно, это будет создавать дополнительный напряг.
имхо будущее за пассивными радиометками по типу тех, которые используются в прокскартах (метро, бейджи). например так: на пульт клеится бумажная антеннка, в которой прошит id. когда надо сделать поиск, передатчик излучает мощный электромагнитный импульс, антенны отвечают. дальше по аналогии с девайсом из поста.