При доступе к 2D-массивам в глобальной памяти использование кэша текстур имеет много преимуществ, таких как фильтрация и отсутствие необходимости заботиться о шаблонах доступа к памяти. Руководство по программированию CUDA называет только один недостаток:
Однако в рамках одного и того же вызова ядра кэш текстур не поддерживается согласованной по отношению к записи в глобальную память, так что любая выборка текстуры по адресу, который был записан через глобальную запись в том же вызове ядра, возвращает неопределенные данные.
Если мне это не нужно, потому что я никогда не пишу в память, из которой читаю, есть ли недостатки/подводные камни/проблемы при использовании кэша текстур (или Image2D, поскольку я работаю в OpenCL) вместо обычного глобального объем памяти? Есть ли случаи, когда я могу потерять производительность при использовании кэша текстур?