카테고리 없음

local memory -> register 예

Prof. Kim 2017. 5. 10. 18:14

- 3x3 Median filter의 경우 예

- 2D image에서 9개의 element를 가져와서 중간값을 찾게 됨.


- 이 경우 9개의 element를 local array in[9]에 저장하고 sorting을 하는 것이 일반적임


- in[9] 대신 in0, in1, ... in8의 local 변수를 사용하면 이 변수들은 register에 할당되게 됨(한 thread당 64개 정도의 할당가능한 범위내에서...)

- local memory에 저장하고 sorting하여 중간값을 찾는거보다 register에 할당하여  9개의 변수에서 중간값을 찾게 코드를 수정하면

  대략 5배 이상속도 향상을 얻을 수 있음.

- 물론 코드는 상당히 길어지게 되나 macro를 사용하면 비교적 손쉽게 구현할 수 있음.