MAC Life2009. 6. 23. 05:15

GUNDAM의 데스크 탑은 MAC PRO입니다.

하도 윈도우만 써봐서 질려서리.. 장만한 것입니다.


요근래 이리저리 한 이유로 하여서  멀티 프로세서에 관한 이슈가 생겼습니다.

그래서 관련한 자료를 찾다가 CUDA를 보게 되고, 흠..  문득 내가 가진 MACPRO는 CUDA를 지원하는가에 대한 궁굼함이 생겨서 한번 테스트 해보기로 했습니다.


물론 그래픽카드 파트 넘버를가지고 찾아보면 될일이지만,

한번 CUDA 프로그램을 돌려보며 찾아보기로 했습니다.




1. 설치 및 환경 설정


다운로드는 여기서 합니다.


http://www.nvidia.com/object/cuda_get.html.


 설치되어야 하는 것은 Tool과 SDK Example  두개입니다.

 저처럼 Tool만 설치하고 Example이 없다고 당황하지 마시고 반드시 두개를 설치하기 바랍니다.


설치가 되면은


/usr/local/cuda


에 설치됩니다.



설치 후에는

  PATH와

DYLD_LIBRARY_PATH를

추가 합니다.


 

PATH는 /usr/local/cuda/bin 을

DYLD_LIBRARY_PATH 는  /usr/local/cuda/lib 를

추가합니다.


export PATH=/usr/local/cuda/bin:$PATH

export DYLD_LIBRARY_PATH = /usr/local/cuda/lib:$DYLD_LIBRARY_PATH


위의 코드를


~/.bash_profile.


에 추가하면 됩니다.


확인은

    nvcc -v

를 입력하여 제대로 움직이는지를 확인합니다.


2. Example 컴파일


/Developer/CUDA/에서 make를 하는 것으로 컴파일이 됩니다.


Example을 컴파일 하면


make -C projects/alignedTypes/

ld: in ../../lib/libcutil.a, archive has no table of contents

collect2: ld returned 1 exit status

make[1]: *** [../../bin/darwin/release/alignedTypes] Error 1


이 됩니다.


ranlib을 아래와 같이 수행합니다.


GUNDAMMACPRO:lib kevinIm$ ranlib libcutil.a

GUNDAMMACPRO:lib kevinIm$ ranlib libparamgl.a

GUNDAMMACPRO:lib kevinIm$ ranlib librendercheckgl.a


다시 컴파일을 하면 잘 진행이 됩니다.


끝나면


/Developer/CUDA/bin/darwin/release


폴더에서


deviceQuery


를 수행합니다.


GUNDAMMACPRO:release kevinIm$ ./deviceQuery

CUDA Device Query (Runtime API) version (CUDART static linking)

There is no device supporting CUDA.


Device 0: "Device Emulation (CPU)"

  CUDA Capability Major revision number:         9999

  CUDA Capability Minor revision number:         9999

  Total amount of global memory:                 4294967295 bytes

  Number of multiprocessors:                     16

  Number of cores:                               128

  Total amount of constant memory:               65536 bytes

  Total amount of shared memory per block:       16384 bytes

  Total number of registers available per block: 8192

  Warp size:                                     1

  Maximum number of threads per block:           512

  Maximum sizes of each dimension of a block:    512 x 512 x 64

  Maximum sizes of each dimension of a grid:     65535 x 65535 x 1

  Maximum memory pitch:                          262144 bytes

  Texture alignment:                             256 bytes

  Clock rate:                                    1.35 GHz

  Concurrent copy and execution:                 No

  Run time limit on kernels:                     No

  Integrated:                                    Yes

  Support host page-locked memory mapping:       Yes

  Compute mode:                                  Default (multiple host threads can use this device simultaneously)


Test PASSED


Press ENTER to exit...


헉.. CUDA를 지원하지 않네요 흑흑

나중에 한번 그래픽 카드를 바꾸어서 테스트 해봐야 할 듯 합니다.


두어달만 늦게 장만했어도 되는것을 샀을텐데

MACPRO 산지 2달만에 신형이 나와서 순식간에 중고가 되어버렸습니다.

'MAC Life' 카테고리의 다른 글

MAC에서 Perl/Tk 컴파일하기  (0) 2009.11.20
SIGGRAPH [2]  (0) 2009.08.07
맥에서 프로파일링 하기  (0) 2009.06.18
OSX용 YUV Player 입니다.  (0) 2009.06.16
나의 다섯번째 애플~~  (1) 2009.03.30
Posted by GUNDAM_IM
MAC Life2009. 6. 18. 23:30
맥에서 프로파일링을 하는 것에 대해서 설명합니다.
맥은 프로파일링 툴로서 SHARK라는 툴을 제공합니다.

Shark는 XCODE에서도 사용할 수 있지만 Command Line에서도 사용할 수 있습니다.

그리고 아무렇게나 띄워 놓고, O/S 상에서 돌아가는 태스크 중에서 선택해서 프로파일링 을 할 수 있습니다.
이번에는 3번째 방법인 아무렇게나 띄워 놓고 필요한 프로그램을 프로파일링 하는 것에 대해서 설명합합니다.
나머지 2개는 나중에 필요해지면 그때 가서 진행하도록 하겠습니다. - 그때 공부해서 하겠습니다. ㅋㅋ

일단 Shark는 /Application 폴더 있지 않고 /Developer 폴더에 있습니다.

/Developer/Applications/Performance Tools/shark

입니다.

사용자 삽입 이미지

실행하면 위와 같은 간단한 창이 뜹니다.

제일 왼쪽에 시작 버튼이 있고요, 제일 오른쪽에 실행에 대한 방식을 선택하는 Combo Box 입니다.

사용자 삽입 이미지
그 콤보 박스에서 제일 위에 있는 Launch를 선택합니다. 이후에는..
자동으로 실행하면 됩니다.

시작 버튼을 누르면 다음과 같은 창이 나옵니다.

사용자 삽입 이미지
칸을 하나하나 설명하면,
제일 위의 Executable은 실행 프로그램을
Working Dir은 실행 폴더를
Arguments는 옵션을 줍니다.

일단 다음과 같이 설정합니다.

사용자 삽입 이미지
Application : /Users/kevinim/Documents/etri_svc/JSVM/jsvm/bin/AvcRewriterStaticd
Working Dir : /Users/kevinim/Documents/etri_svc/JSVM/
Arguments : output/Coral.svc.264 output/Coral.svc.avc.2.264

으로 설정합니다.

이것은 환경에 따라 틀리므로 적당하게 설정하시고
시작 버튼을 누르면 한참 진행한 후에 결과가 나옵니다.

사용자 삽입 이미지
위의 그림은 작업이 끝난 후에 결과를 분석하는 과정입니다.
그냥 자동으로 수행됩니다.

이후에 각 함수별로 잘 정리된 그림이 나옵니다.

사용자 삽입 이미지
그리고 위의 창에서 Chart TAB을 선택하면 다음과 같은 그림이 나옵니다.

사용자 삽입 이미지
왼쪽의 그래프는 Call Stack Depth를 표시해 줍니다. 얼마나 함수가 호출되어 왔는지에 대한 정보를 보여줍니다.
이중에서 제일 깊이 된것 중에 하나를 선택하면 창의 오른쪽에 그에 해당하는 Call Stack Frame을 보여줍니다.

사용자 삽입 이미지
위의 그림은 Call Stack에 대한 그립니다.
더블 클릭하면 해당 함수로 들어갑니다.

사용자 삽입 이미지
창의 왼쪽 밑에 보면 확대 축소를 컨트롤하는 슬라이드 버튼이 있습니다. 이것으로 확대를 하면 아래와 같은 그림이 나옵니다.


사용자 삽입 이미지
세로로 노란색 부분이 선택한 호출 부분이고 가로로 노란색이 부하가 가장 많이 걸리는 함수 등에 대한 부분입니다.


다시 프로파일 창에 들어가서

로드가 많이 걸리는 함수를 찾아서 더블클릭하면 다음과 같이 창이 됩니다.

사용자 삽입 이미지
소스만 보는 창이고, 어셈블를 본다든지 두개 다 보는 것도 가능합니다.
물론 이렇게 까지 볼일이 없겠지만 하여튼 유용하기도 합니다.

사용자 삽입 이미지
위의 창은 어셈블러와 C를 같이 보여주는 창입니다.

인라인 함수로 메모리를 모두 0으로 초기화 시키는것에 생각보다 시간이 많이 걸리는 것을 알수 있습니다.

그리고 컬럼에서 [!] 로 표시된 컬럼이 있습니다. 이것은 최적화에 대한 정보를 알려주는 컬럼입니다.

사용자 삽입 이미지
위에서 보는 것 처럼 함수가 작고 자주 호출하는 것은 인라인으로 해보는게 어떻겠냐고 알려줍니다.

실제 코드는 2가지 타입이 있는데, 디버깅 정보가 포함된 버전과 아닌 일반 버전이 있습니다.
양측간에 차이점이 있고 이로 인해서 프로파일링 결과가 조금씩 차이가 나는 것을 감안하고 보면
도움이 됩니다.

코드 최적화는 다른 문제여서 그것은 언젠가 기회가 되면 다시 설명하도록 하겠습니다.
여기서는 코드 최적화 할일이 없어서요..




'MAC Life' 카테고리의 다른 글

SIGGRAPH [2]  (0) 2009.08.07
CUDA on MAC OS  (0) 2009.06.23
OSX용 YUV Player 입니다.  (0) 2009.06.16
나의 다섯번째 애플~~  (1) 2009.03.30
맥에서 개발한다는 것은..  (0) 2009.03.19
Posted by GUNDAM_IM
MAC Life2009. 6. 16. 08:13
OSX에서 구동할 수 있는 YUV 플레이어입니다.

출처가 어디있는지는 링크를 안걸어 두어서 잊었지만,
인터넷 키워드 서치하면 나옵니다.

{

  나중에 따로 서치하여서
  이곳을 찾았습니다.

  http://bax.comlab.uni-rostock.de/en/projects/glyuvplay.html?type=http%3A%2Fappserv%2Ferrors.php%3Ferror%3Dhttp%3A%2F%2Fwww.saa-web.de%2Fball%3F%3F%3F

}

용법은 간단하지만,
사용하는데에는 불편함이 없습니다.

특히 영상을 적당한 사이즈로 스케일링하여 보여주기 때문에
1080p와 같은 커다란 이미지도 볼 수 있습니다.

이 기능은 1080p에서는 꼭 필요한 기능이죠..

사용자 삽입 이미지

이미지를 선택하는 그림입니다.
다양한 포멧을 선택할 수 있습니다.

사용자 삽입 이미지

플레이 중인 화면입니다.

사용자 삽입 이미지

FPS등을 세팅할 수 있습니다.

기능이 나름 쓸만합니다.


이 프로그램의 원본 사이트입니다.
http://bax.comlab.uni-rostock.de/en/projects/glyuvplay.html
- 현재 (2011/10/1) 최신 버전은 0.96입니다.
 

'MAC Life' 카테고리의 다른 글

CUDA on MAC OS  (0) 2009.06.23
맥에서 프로파일링 하기  (0) 2009.06.18
나의 다섯번째 애플~~  (1) 2009.03.30
맥에서 개발한다는 것은..  (0) 2009.03.19
수치스러운 인터페이스의 명예의 전당  (0) 2009.03.05
Posted by GUNDAM_IM
MAC Life2009. 1. 23. 10:01
간단한 맥 팁하나

히든파일을 보기 위해서 몇가지 방법이 있습니다

제일 쉬운게 터미널에서 다음과 같이 하는 것입니다.

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

하면 히든파일을 볼 수 있습니다.

defaults write com.apple.finder AppleShowAllFiles FALSE
 killall Finder

하면 다시 안보입니다.

명령어를 일일이 외우지 안고.. 
또.. 이경우는 정말 간혹가다가 치는 거라서 까먹기 쉬워서 올려둡니다.
Posted by GUNDAM_IM
MAC Life2009. 1. 3. 23:44
매킨토시 환경에서 개발한다는 것은 

- 다 만든 후에 윈도우즈나 리눅스로 옮기는 것을 고민해야 하기에 고단한 개발자의 삶이 더 고단해지는 것...
- 그래도 맥이 더 빠른데 라는 것을 위안으로 개발한다는 것... 
- 항상 어떻게 하면 XCODE에 통합할까 하는 것을 생각하면서 코딩한다는 것...
- 하여튼 주변 사람들이랑 잘 대화가 안되는 것을 느끼면서 살아가는 자신을 발견한다는 것...
- 그래도 저급한 윈도우즈 환경보다는 훨씬 낳다는 것...

맥 라이프는 그만큼 고단하지만, 그보다 훨씬 더 좋은 것을 맥 라이프가 주기 때문에 맥을 오늘도 고집합니다.

'MAC Life' 카테고리의 다른 글

수치스러운 인터페이스의 명예의 전당  (0) 2009.03.05
Culture Code의 개발 이미지  (0) 2009.01.28
맥에서 히든파일 보기  (0) 2009.01.23
패러럴즈 사용하면서 emacs 키 바꾸기~  (0) 2009.01.17
멋진 Key Note 09  (0) 2009.01.08
Posted by GUNDAM_IM
Computer Vision2009. 1. 3. 23:36
이번에 발견한 것은 OpenCV의 개발 환경을 XCODE에 통합하는 것입니다.  요기를참조

일본 사이트이고요.. .일본은 그나마 맥 환경이 우리보다는 좋아서 이런 저런 내용이 많이 있습니다.
일본어를 모르셔도.. .그림만 따라가면 해볼 수 있습니다.

요새는 일본 애니와 망가의 영향으로 일본어는 제 2 외국어가 아니기 땜에, 
큰 부담은 없으리라 생각합니다. 


'Computer Vision' 카테고리의 다른 글

Rob Hess의 SIFT [3]  (2) 2009.02.23
Rob Hess의 SIFT [2]  (0) 2009.02.18
Rob Hess의 SIFT [1]  (1) 2009.02.16
MAC에서 OpenCV를 컴파일 하기  (0) 2009.01.06
파노라마 구성하기  (0) 2009.01.03
Posted by GUNDAM_IM