видове памет
Таблица 3.1: Видове памет
синхронизация
__syncthreads () функция ви позволява да синхронизирате теми в блока, който ще изчака до тогава, докато всички стартирани нишки ще работят до този момент. е необходима функция за данни, обработвани от една нишка, след това ще се използва от други теми.
__syncthreads () позволява точката за синхронизация като бариера до момента всички нишки на дялове са приключили изпълнение на всички предходни инструкции, нито един от следния код няма да бъдат изпълнени. Не се препоръчва за използване в условия.
Можете да използвате и събитие ", за да синхронизирате процесора.
За да проследявате ефективността на GPU код в CUDA използва събитие ". За да работите с тях, са следните:
cudaError_t cudaEventCreate (cudaEvent_t * събитие);
Тази функция се използва за създаване на джубокс.
cudaError_t cudaEventRecord (cudaEvent_t събитие CUstream поток.);
функция cudaEventRecord се използва за определяне на мястото, преминаването на които трябва да сигнализират на събитието. Ако потокът не е нула, а след това се наблюдава само на завършване на всички операции в потока. Трябва да се отбележи, че това искане е асинхронен - това всъщност се отнася само до мястото, в потока от инструкции, след което ще се изисква преминаването на което.
cudaError_t cudaEventQuery (cudaEvent_t събитие);
функция cudaEventQuery извършва незабавна проверка на "преминаването" на eventa - контрол над него веднага се връща. Ако всички операции, предшестващи тази event'u завършено, той се връща cudaSuccess. в противен случай тя се връща
cudaErrorNotReady.
cudaError_t cudaEventSynchronize (cudaEvent_t събитие);
Изрично синхронизация, т.е. изчакайте, докато всички операции за Juke не бъде завършена, предвидени този отбор.
cudaError_t cudaEventElapsedTime (поплавък * време cudaEvent_t startEvent cudaEvent_t stopEvent..);
С помощта на функцията cudaEventElapsedTime да се знае времето в милисекунди (до половин микросекунда), изтекло между event'ami (между моментите, когато всеки един от тези event'ov е "написано").
cudaError_t cudaEventDestroy (cudaEvent_t събитие);
Функция извършва за премахване на Juke.