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