开发者
资源

同步机制

SIMT是一种单指令多线程的编程模式,其异步编程模型旨在通过多线程并发执行达到内存操作加速的目的。在这一编程模型中,线程作为执行计算或操作内存的最小抽象单位,其操作是相互独立的。然而,在某些应用场景中,需要支持线程间的同步,或防止不同线程对同一内存区域的读写操作引发的数据竞争。为此,Ascend C提供了相应的同步接口,这些接口允许开发者根据需求选择合适的同步机制,以确保异步操作的正确性和性能。

接口名

功能说明

asc_syncthreads

等待当前线程块内所有线程代码都执行到该函数位置。

asc_threadfence

用于保证不同线程对同一份全局、共享内存的访问过程中,写入操作的时序性。它不会阻塞线程,仅保证内存操作的可见性顺序。

asc_threadfence_block

用于协调同一线程块(Thread Block)内线程之间的内存操作顺序,确保某一线程在asc_threadfence_block()之前的所有内存操作(读写),对同一线程块内的其他线程是可见的