yuchi's Development Home
글 수 201
토요일 + 일요일 + 월요일 새벽을 투자하여 CUDA로 라이트맵을 계산할 수 있도록 엔진을 뜯어고쳤다.
엄청난 시행착오 끝에 그림자까지 제대로 계산하도록 만들었다.
결과는....
CPU로 계산하는 쪽이 두 배 빨랐다.
이런 샹.
Q6600의 코어4개를 풀로 사용하는 것이 9800GTX+의 128스트림프로세서를 사용하는것보다 빨랐다.
CPU코드를 짜면서 코드 논리에서 최적화한 부분이 GPU코드에 반영되지 않은게 큰 이유이기도 하고, 메모리 전송이 지나치게 많은 까닭도 있다.
GPU코드로 작성하려면 아무래도 제약이 많다보니 코드 최적화는 생략하고, 호스트와 디바이스간 전송도 줄이지 못한 것인데...이런.
죽도록 최적화하면 CPU코드보다 빠르게 작성할 수 있을것 같긴 한데...
뭐하러 그 짓을 해.
요새 I7기반의 6코어 CPU가 나왔는데 그거 꽂으면 2배는 더 빨라지겠구만.
아흑.
하긴 CPU코드도 SSE어셈블리로 최적화하고 나름대로의 캐쉬전략에 별별 짓을 다 했었는데.
하여간 허무하다.
출근할때까지 4시간밖에 못자는데.
아 열받어.
엄청난 시행착오 끝에 그림자까지 제대로 계산하도록 만들었다.
결과는....
CPU로 계산하는 쪽이 두 배 빨랐다.
이런 샹.
Q6600의 코어4개를 풀로 사용하는 것이 9800GTX+의 128스트림프로세서를 사용하는것보다 빨랐다.
CPU코드를 짜면서 코드 논리에서 최적화한 부분이 GPU코드에 반영되지 않은게 큰 이유이기도 하고, 메모리 전송이 지나치게 많은 까닭도 있다.
GPU코드로 작성하려면 아무래도 제약이 많다보니 코드 최적화는 생략하고, 호스트와 디바이스간 전송도 줄이지 못한 것인데...이런.
죽도록 최적화하면 CPU코드보다 빠르게 작성할 수 있을것 같긴 한데...
뭐하러 그 짓을 해.
요새 I7기반의 6코어 CPU가 나왔는데 그거 꽂으면 2배는 더 빨라지겠구만.
아흑.
하긴 CPU코드도 SSE어셈블리로 최적화하고 나름대로의 캐쉬전략에 별별 짓을 다 했었는데.
하여간 허무하다.
출근할때까지 4시간밖에 못자는데.
아 열받어.