Является ли производительность доступа к постоянной памяти такой же, как и к глобальной памяти на OpenCL
Как я знаю. Постоянная память на CUDA-это специфическая память. И это быстрее, чем глобальная память. Но в спецификации OpenCL. Я получаю следующие слова.
Имя
__constant
или постоянное адресное пространство используется для описания переменных, выделенных в глобальной памяти и доступных внутри ядра (ядер) как переменные только для чтения
Таким образом, память __constant
происходит из памяти __global
. Означает ли это, что он имеет такую же производительность доступа с памятью __global
?
2 ответа:
Это зависит от аппаратной и программной архитектуры используемой вами платформы OpenCL. Например, можно представить себе архитектуру с кэшами только для чтения, которым не нужно участвовать в когерентности кэша. Эти кэши могут использоваться для постоянной памяти, но не для глобальной памяти. Таким образом, вы можете увидеть более быстрый доступ к постоянной памяти.
Тем не менее, ни одна из известных мне архитектур не работает таким образом. Так что это только гипотеза.