Атомарно обменивайтесь переменной в глобальной памяти или общей памяти с заданным значением
[A,oldA] = gpucoder.atomicExch(
атомарно обменивается значением A
,B
)A
в глобальной памяти или общей памяти со значением в B
и записывает результат обратно в A. Операция является атомарной в некотором смысле, что целая операция "чтение изменяет запись", как, гарантируют, будет выполнен без интерференции от других потоков. Порядок аргументов ввода и вывода должен совпадать с обеспеченным синтаксисом.
Вход указателя на функцию к gpucoder.stencilKernel
прагма не может содержать вызовы атомарных функций. Например,
out1 = gpucoder.stencilKernel(@myAtomicExch,A,[3 3],'same',B);