Здравствуйте! Может кто сталкивался с такой бедой (VC++ 2008, CUDA 2.3)?
Разве есть ограничение на размер константы? Я попробовал так и эдак, получается что константа не может быть больше 16384 элементов. Только я чтото не помню чтобы такое было гдето написано в мануале.
Мне хотелось разместить в константе матрицу инцидентности графа на несколько тысяч вершин, в надежде что часть ее будет кэшироваться (как это написано в мануале). Получается что это невозможно?
Comments
то есть используется константная память? которая __constant__?
она ж ограниченая, у меня на gtx 260 всего 64к вроде. 16384 * размер типа данных, видимо float (4 байта). получаем предел.
можно часть матрицы засунуть в shared память, если реализация позволяет.
Чтото в мануале я видать пропустил таки, реально не помню чтобы было написано что у __constant__ есть ограничения (и какие если есть).
Ограничения есть и они небольшие.
Если хочется кэширования, то есть текстурный кэш с 2D-локальностью.
device query из sdk возвращает нам total amount of constant memory.