Вчера наконец выбрал время просмотреть NVIDIA_CUDA_ProgrammingGuide_2.3.pdf, обнаружил довольно интересные новости. Вообще, если говорить об изменениях CUDA начиная с релиза 1.0, то самым существенным было появление атомарных функций в релизе 1.1.
В CUDA 1.3 есть тоже много существенных дополнений.
- конечно появление double, но об этом уже давно писали и соответственно давно ожидали, поэтому на самом деле это уже почти и не новость.
- соответственно появление новых встроеных векторных типов longlong1, longlong2, double1, double2
- появление барьеров - функций __threadfence_block() и __threadfence()
Барьеры позволяют ввести некое подобие volatile из c++. Если это так, то это может сильно упростить создание сложных структур данных в cuda (списков, деревьев и т.п.).