일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- OpenCL 초기화
- OpenCL 2.0 시작하기
- Visual Leak Detector
- init
- program
- OpenCL 2.0
- initialize
- OpenCL 설치
- Queue
- 메모리 누수
- Memory Leak
- Device
- Platform
- OpenCL
- Intel OpenCL
- Kernel
- VLD
- Today
- Total
목록2016/12/23 (2)
후로링의 프로그래밍 이야기
Median FIlter Median Filter는 픽셀 주변을 둘러싼 픽셀 중 중간값을 찾아서 대체해주는 필터 입니다. 극대값과 극소값을 제거할 수 있습니다. 신호처리 나 이미지 처리에 자주 쓰이는 것으로 대표적으로는 이미지의 소금&후추 잡음을 없애는데 많이 쓰입니다. 다음 예에서는 이미지의 극대값을 없애는데 사용 하였습니다. Median Filter 연산 Median FIlter연산은 연산의 대상이 되는 픽셀 주변의 픽셀을 한줄로 세워 가운데 서있는 픽셀의 값을 취하는 형태입니다. 다시말해 정렬을 해야합니다. 다들 아시다시피 정렬 연산의 Optimal은 O(n*logn)입니다. 수만 픽셀에 대해 정렬을 수행하는 것이라면 GPU를 이용하면 Optimal은 O(logn)입니다. 하지만 Median FIl..
루프 언롤링(Loop Unrolling) 이전 포스트에서 루프 언롤링을 통해 최적화 하는 코드를 잠깐 보았습니다. 루프언롤링이란 for문이나 while문과같은 루프문을 직접적인 명령어의 나열로 바꾸는 기법입니다. 루프를 코드의 나열로 바꾸게 되면 루프 제어를 위한 증가연산, 비교연산이 생략되어 연산량을 감소 시킬 수 있습니다. 또한, GPU에서 실행하는 코드를 컴파일하게 되면 명령어를 묶어 덩어리로 실행하게 되는데, 루프를 사용하지 않으면 명령어가 끊기지않고 담기게 되어 연산속도가 향상됩니다. 코드로 간단히 살펴보면 다음과 같습니다. 먼저 Not unrolled 코드 입니다. 보시는 바와 같이 일반적인 for문입니다. 1234567// Not unrolled for(int i = localRow; i