9월, 2017의 게시물 표시

GPGPU를 활용한 전파 영역분석(singleKnife, delta bullington)

이미지
GPGPU 를 이용한 병렬처리 연산을 적용하여 개발한 결과물로서 C++AMP를 이용하였다. CUDA C보다 연산속도가 두배정도 느리지만 NVIDA에 종속 되지 않으므로 그래픽카드의 종류에 상관없이 동작되는 장점이 있다. 회절에 대한 부분만 테스트 개념으로 구현하였다. 제대로된 분석을 하게 되면 속도가 더 느려질 수 있으나 동영상을 캡쳐한 장비가 노트북임을 감안하면 그래픽 카드의 사양에 따라 실시간 분석도 가능할 것으로 예상된다.
결과물로는 이미지를 내보내는데 중앙으로부터 각 셀 위치까지의 수신 레벨을 색상으로 표현하지만 단순히 수신레벨값으로만 결과를 생성하는 기능도 가능함
시연동영상



이미지 결과물
36.687141, 127.396866 36.720852, 127.438011 36.748131, 127.474846 36.769527, 127.520134 36.783569, 127.570740 36.817669, 127.631256

현금흐름 속도측정

이미지
1. 속도측정용 엑셀 로직을 분석하여 GPGPU를 활용한 병렬프로그램 구현.
구현방법 : C++, C++AMP, CUDA실행 보유계약 건수 : 9,994,530 건 (약 천만건)3단계로 구현데이터 로딩 : CPU 에서 처리(inforce.csv 파일로 된 보유계약을 로딩)연산C++ : CPU 연산(비교를 위해 1 core만 사용해서 구현) C++AMP : GPGPU 연산CUDA : GPGPU 연산결과 쓰기  : CPU 에서 처리(csv로 생성)결과데이터 로딩과 결과 쓰기는 CPU에서 처리하므로 시간이 비슷함데이터로딩 : 약 13초결과 쓰기 : 약 18.5초C++ 연산약 198초 (3분18초)C++AMP 연산약 9.5초CUDA 연산약 5.1초각각의 결과 파일은 inforce_cpp.csv, inforce_amp.csv, inforce_cuda.csv 가 생성되며 값에 대한 비교는 같은 것으로 확인했으며, 각각 파일 사이즈를 확인하면 똑같은 결과 값이 나온 것을 짐작할 수 있다.결과는 컴퓨터 사양에 따라 달라질 수 있다.
2. 테스트 장비 사양

프로세서 : Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz (4 CPUs)메모리 : 8GDirectX : 11버전(C++ AMP로 구현할 경우 관련됨)그래픽카드 : GeForce GTX 970그래픽카드 메모리 : 4G
3. 엑셀로직을 실행했을 경우

시간 관계상 1000건의 연산 후 종료초기에는 빠르지만 시간이 갈수록 느려지는 현상이 발생1000건 연산에 걸리는 시간은 약3분33초(213초)만약 1000만건을 실행한다면 다음과 같은 시간이 소요됨2130000초 => 35500분 => 591.6667시간 => 24.6527일 
4. 로직 구현에 대한 값 검증
엑셀 내부에 존재하는 보유계약건(70만건)으로 실행하므로 inforce.csv 파일과 내용이 다름. 따라서 값 검증을 위해 엑셀에 포함되어 있는 보유 계약건을 csv파일로 만들어 값 검증에 사용
엑셀 값 비교를 위한 캡쳐 화면
5. 이외의…