Hafoom.com

 

페르미구조 기반 GPGPU-SIM

reference : https://cvw.cac.cornell.edu/gpu/coalesced?AspxAutoDetectCookieSupport=1

                http://www.umiacs.umd.edu/~ramani/cmsc828e_gpusci/Lecture7.pdf

                http://accel.cs.vt.edu/files/lecture11.pdf

 

Summary.

사실은 잘 모름.

 

Memory Coalescing

nearby or adjacent accesses should be combined.(single transaction). it results being one access and faster.

 

 

GPU의 Hierarchical Mem에서

두가지의 기법이 주요.

- Global memory access에 대한 Coalescing.

- shared memory에 대한 여러 프로세서 접근을 여러개의 bank로.

 

32bit words-64byte transaction.

64bit words-128byte transaction.

128bit words-128byte * 2 transaction.

 

스레드들은 순서대로 half-warp에 접근해야함.

 

Coalescing 기법적용 전에는 아래와 같은 문제.

left side : 순차적인 접근이 아닌 경우. 16개의 transaction 발생.

right side : 순차적이지만 워프내에서 시작포인트가 잘못 됨.

16개의 transaction 발생.

 

 

Coalescing 기법은 이러한 여러 transaction을 1,2개로 바꿔 throughput을 향상.

 

 

Bank Conflict Avoidence.

 

shared memory는 bank conflict만 없으면 거의 register만큼 빠름.

bank conflict는 다른 warp(half warp)간에 일어나지 않음. 같은 warp안에 있는 thread끼리 일어남...

- 하나의 워프에 속한 thread가 다른 뱅크에 간다면 당연히 발생x

- 동일한 곳을 참조하면 그 역시 no conflict. (broadcasting이 있음)

하나의 뱅크에 동시 접근 경우의 cost는 거의 최대치라고 보면 됨.....conflict 계속 발생.

 

Linear addressing.

뱅크를 16개라 치면 s(stride)는 홀수가 되어야 함.

access는 3칸씩 떨어지면서 접근되며,

예를들어 bank index를 0,3,6,9,12,15, 접근한 뒤 2, 5, 8,.... 식으로 접근.

no conflict이다.

 

 

 

 

GPU Optimization Fundamentals

reference : https://www.olcf.ornl.gov/wp-content/uploads/2013/02/GPU_Opt_Fund-CW1.pdf

 

2013년도 업로드된 자료로, 상당히...축약되어 있어서 입문에는 읽기에 이른감이 있음.

 

L1 and L1 cache

- software쪽에선 고려안됨.제어안됨.

 

SM의 Read only data cache

- texture pipeline과 공유됨.

- uncoalesced 된 read 명령어들에 대해 유용함.(why?)

- compiler에 의해 특수한 펑션으로 제어가 가능함.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'MicroArchitecture > GPU' 카테고리의 다른 글

GPU 기초를 쌓자.  (0) 2016.06.23
2016.03.18 Memory coalescing, bank, linear addr  (0) 2016.03.18

Comment +0

티스토리 툴바