Programming/openCL & CUDA2010. 10. 30. 22:19
BOINC SETI@HOME 에서 SLI로 돌릴바에는 독립으로 두개로 돌리는게
효용이 좋다는 말을 들은적이 있는데(아마 영문 게시판이었던듯?)
CUDA 문서를 읽다가 문득 떠올라 검색을 해보니 메모리 할당의 특징으로 인해(이부분은 찾아봐야 하겠지만)
다른 GPU의 메모리 까지 끌어가면서 메모리 부족사태가 발생하여 예상보다 적은 수의 CUDA device만
작동이 되므로 SLI의 효용이 예상보다는 떨어지는게 아닐까 생각을 해본다.

4.3  Multiple Devices

In a system with multiple GPUs, all CUDA-enabled GPUs are accessible via the CUDA driver and runtime as separate devices. There are however special considerations as described below when the system is in SLI mode.

First, an allocation in one CUDA device on one GPU will consume memory on other GPUs. Because of this, allocations may fail earlier than otherwise expected.
(첫째, 하나의 GPU상의 하나의 CUDA 장치에 대한 메모리 할당은 다른 GPU들의 메모리를 소비할 것이다. 이러한 것으로 인해, 예상한것보다 더욱 빨리 메모리 할당이 실패할수 있을지도 모른다. - 직역
첫째, 메모리 할당을 하면 GPU상의 CUDA 장치가 다른 GPU의 메모리까지 소비하기 때문에, 생각보다 더욱 빨리 메모리 부족사태가 벌어질지도 모른다. - 의역)

Second, when a Direct3D application runs in SLI Alternate Frame Rendering mode, the Direct3D device(s) created by that application can be used for CUDA-Direct3D interoperability (i.e., passed as a parameter to cudaD3D[9|10]SetDirect3DDevice() when using the runtime API), but only one CUDA device can be created at a time from one of these Direct3D devices.

This CUDA device only executes the CUDA work on one of the GPUs in the SLI configuration.
As a consequence, real interoperability only happens with the copy of a Direct3D resource in that GPU
(note: in AFR mode Direct3D resources that must be in GPU memory are duplicated in the GPU memory of each GPU in the SLI configuration).
In some cases this is not the desired behavior and an application may need to forfeit use of the CUDA-Direct3D interoperability API and manually copy the output of its CUDA work to Direct3D resources using the existing CUDA and
Direct3D API.

[출처 : NVIDIA_CUDA_C_ProgrammingGuide.pdf 파일에서 발췌]

두번째는 interoperability가 모르니 일단 패스 -_-




검색해보니 제목도 거의 유사한 내용 -_-

Posted 31 Jan 2009 19:22:14 UTC
SLI basically combines 2 (or more) matched GPU devices into 1 logical GPU device. When in SLI mode, the system sees only 1 logical GPU and unfortunately for CUDA this means that it only has visibility to 1 physical device (not 2, 3 or 4). Disabling SLI mode for CUDA is best because it allows SETI to take advantage of each GPU as its own device.

[링크 : http://boinc.berkeley.edu/dev/forum_thread.php?id=3592]

2010/10/09 - [프로그램 사용/BOINC - seti@home] - CUDA 그리고 SLI

'Programming > openCL & CUDA' 카테고리의 다른 글

CUDA 예제파일 실행결과 + SLI  (0) 2010.11.02
SLI mode - AFR, SFR, AA  (0) 2010.11.01
CUDA SDK 설치하기  (2) 2010.10.24
CUDA Toolkit 설치하기  (0) 2010.10.24
BLAS - Basic Linear Algebra Subprograms  (0) 2010.10.24
Posted by 구차니
Programming/openCL & CUDA2010. 10. 24. 21:50
CUDA Toolkit에는 간단한 문서와 개발환경만 존재할뿐 예제 코드들이 들어있지 않다.
그렇기 때문에, 공부하려면 Toolkit과 더불어 SDK code samples를 설치해주어야 한다.

CUDA Toolkit

  • C/C++ compiler
  • CUDA Visual Profiler
  • OpenCL Visual Profiler
  • GPU-accelerated BLAS library
  • GPU-accelerated FFT library
  • Additional tools and documentation

*New* Updated versions of the CUDA C Programming Guide (Version 3.1.1) and the Fermi Tuning Guide (Version 1.2) are available via the links to the right.

32-bit
64-bit
GPU Computing SDK code samples 32-bit
64-bit

[링크 : http://developer.nvidia.com/object/cuda_3_1_downloads.html]



--- 추가내용
CUDA Toolkit 32bit
 - 2010.10.24 다운로드 대략 64MB / 설치용량 대략 120MB
GPU Computing SDK code samples 32bit
 - 2010.10.24 다운로드 대략 300MB / 설치용량 대략 1GB

'Programming > openCL & CUDA' 카테고리의 다른 글

SLI mode - AFR, SFR, AA  (0) 2010.11.01
CUDA 와 SLI  (0) 2010.10.30
CUDA Toolkit 설치하기  (0) 2010.10.24
BLAS - Basic Linear Algebra Subprograms  (0) 2010.10.24
nbody  (0) 2010.10.10
Posted by 구차니
Programming/openCL & CUDA2010. 10. 24. 21:17
한줄요약 : 260 이상 버전의 nvidia 드라이버 깔고 시작하면 편함



미친척 CUDA Toolkit 설치시작
헉 경고다!!!

해석 : 니꺼는 드라이버 버전 조또 아님. 업글하셈!


그래서 부랴부랴 엔비디아 홈페이지가서 다운로드 시작!
버전이 무려 60가까이 차이가 나는구나 -_-
+ 드라이버 설치에는 리부팅 필수

별 특이한건 없으므로 CUDA Toolkit 설치 화면은 패스
기본적으로 C:\CUDA에 설치가 되며 아래는 C:\CUDA\bin 의 내용
nvcc가 컴파일러이며 cudart의 저렴한 사이즈와 cuBLAS 그리고 cuFFT의 크고 아름다운(!) 사이즈를 감상!
파일 갯수도 얼마 안되면서 용량은 졸라 먹네 -_-

'Programming > openCL & CUDA' 카테고리의 다른 글

CUDA 와 SLI  (0) 2010.10.30
CUDA SDK 설치하기  (2) 2010.10.24
BLAS - Basic Linear Algebra Subprograms  (0) 2010.10.24
nbody  (0) 2010.10.10
GPU 컴퓨팅 전문기업 - 미루웨어  (0) 2010.10.10
Posted by 구차니
Programming/openCL & CUDA2010. 10. 24. 21:03
처음 BLAS라는 것의 존재를 알게된 것은
MATLAB이라는 녀석을 AMD cpu 에서 돌릴때였다.
[링크 : http://blog.naver.com/morpheuz82/130016114034] << 네이년 구차니 블로그

아무튼 그때는 별 생각없이 넘어갔는데
CUDA를 설치하려고 하면서 메뉴얼들을 보니 CUBLAS Library라는게 눈에 띄길래 또 다시 검색을 했는데
여전히 무슨 말인지는 모르겠다 -_-


선형대수를 안들은걸 지금와서 후회중 ㅠ.ㅠ
간단하게 이해하자면(응?) 선형대수학 연산중 "벡터" 와 "행렬의 곱셈" 등과 같은 연산에 대한 표준을 의미하는 것으로 보인다.

Basic Linear Algebra Subprograms (BLAS) is a de facto application programming interface standard for publishing libraries to perform basic linear algebra operations such as vector and matrix multiplication. They were first published in 1979, and are used to build larger packages such as LAPACK. Heavily used in high-performance computing, highly optimized implementations of the BLAS interface have been developed by hardware vendors such as Intel and AMD, as well as by other authors, e.g. Goto BLAS and ATLAS (a portable self-optimizing BLAS). The LINPACK benchmark relies heavily on DGEMM, a BLAS subroutine, for its performance.

[링크 : http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms]

SIMD 계열인 MMX나 SSE 등도 모두 이러한 BLAS와 연관이 있을것으로 추측된다.
(그런 이유로 "highly optimized implementations of the BLAS interface have been developed by hardware vendors such as Intel and AMD" 라고 CPU 업체들이 언급이 될게 아닐까?)

[링크 : http://en.wikipedia.org/wiki/SIMD]
[링크 : http://en.wikipedia.org/wiki/MMX_(instruction_set)]
[링크 : http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions]

'Programming > openCL & CUDA' 카테고리의 다른 글

CUDA 와 SLI  (0) 2010.10.30
CUDA SDK 설치하기  (2) 2010.10.24
CUDA Toolkit 설치하기  (0) 2010.10.24
nbody  (0) 2010.10.10
GPU 컴퓨팅 전문기업 - 미루웨어  (0) 2010.10.10
Posted by 구차니
Programming/openCL & CUDA2010. 10. 10. 16:23
CUDA나 그래픽 쪽 글들을 보면 nbody가 나오길래 머하는 녀석일려나 하고 찾아보게 되었다.
(일단 그래픽이 멋지잖아!)


대충 설명하자면, n 개의 body 들의 상호연관성을 계산하는 시뮬레이션이다.

[링크 : http://en.wikipedia.org/wiki/N-body_simulation]
    [링크 : http://en.wikipedia.org/wiki/N-body_problem]

'Programming > openCL & CUDA' 카테고리의 다른 글

CUDA 와 SLI  (0) 2010.10.30
CUDA SDK 설치하기  (2) 2010.10.24
CUDA Toolkit 설치하기  (0) 2010.10.24
BLAS - Basic Linear Algebra Subprograms  (0) 2010.10.24
GPU 컴퓨팅 전문기업 - 미루웨어  (0) 2010.10.10
Posted by 구차니
Programming/openCL & CUDA2010. 10. 10. 15:43
마루웨어 아님 -_-

CUDA 라고 불리우는, GPU 프로그래밍 관련해서 국내에서는 유일한 기업이라고 하는데
몇몇 자료들은 꽤 쓸만해 보인다.

[링크 : http://www.miruware.com/]

'Programming > openCL & CUDA' 카테고리의 다른 글

CUDA 와 SLI  (0) 2010.10.30
CUDA SDK 설치하기  (2) 2010.10.24
CUDA Toolkit 설치하기  (0) 2010.10.24
BLAS - Basic Linear Algebra Subprograms  (0) 2010.10.24
nbody  (0) 2010.10.10
Posted by 구차니
Programming/C Win32 MFC2010. 10. 4. 18:04
한글로 번역이 잘못된건지 한글로는 모호하지만,
일단 정의(Definition)는 말그대로 어떠한 것을 정의"" 한다.
실제로 구체화/구현되지 않고, 설계도 라던가 단순하게 알려주는 역활을 한다.
하지만, 선언은 구체화를 한다. (메모리상에 자리를 차지한다)

그래서 우리가 변수를 만들때 "선언" 한다고 하고
구조체를 만들때 "정의" 한다고 했던 것이다.

[링크 : http://dstein.egloos.com/2563434]
[링크 : http://rookiecj.tistory.com/24]
[링크 : http://www.crazyowl.com/755]


----
으아아.. 지금보니 거꾸로 한게 맞네 ㅠ.ㅠ
딱다구리님 죄송합니다 ㅠ.ㅠ 

'Programming > C Win32 MFC' 카테고리의 다른 글

CFileDialog 말고 폴더 다이얼로그 없나?  (0) 2011.10.22
ctime()  (2) 2011.07.06
ini 파일 내용 파싱하기  (2) 2010.09.27
WinMain 과 DllMain  (0) 2010.09.09
수직탭이 모야? (what is the Vertical tab?)  (4) 2010.07.19
Posted by 구차니
Programming/C Win32 MFC2010. 9. 27. 22:00
머 언젠간 쓸일이 있겠지 -_-


GetPrivateProfileString()

[링크 : http://en.wikipedia.org/wiki/INI_file]
    [링크 : http://msdn.microsoft.com/en-us/library/ms724353%28VS.85%29.aspx]
Posted by 구차니
Programming/C++ STL2010. 9. 16. 10:07
new와 delete,
new[] 와 delete[] 가 묶여야 한다고 한다.

즉,
 int *a = new int;
 delete a;

 int *arr = new int[10];
 delete[] arr; // delete arr[]; 이 아님

그렇다고 해서 링크드 리스트 처럼 다층으로 메모리를 할당하는 구조에서는
delete[] 가 자동으로 해주진 않는것으로 보인다.
(그냥 STL 쓰면 해결된다는 지인의 조언이 -_-)

[링크 : http://yesarang.tistory.com/39]

'Programming > C++ STL' 카테고리의 다른 글

c++ template  (0) 2012.05.12
리눅스에서 c++ 컴파일시 strcpy / strcat 오류  (0) 2011.10.13
cout 그리고 namespace  (0) 2010.09.16
C++ 레퍼런스 변수(reference variable)  (4) 2010.09.15
C++0x  (0) 2010.09.15
Posted by 구차니
Programming/C++ STL2010. 9. 16. 09:35
cout을 쓰려면
#include <iostream>
using namespace std;
두개를 써야 한다고 했는데, 문득 아래를 안쓰면 어떤 에러가 날지 궁금해졌다.

 error C2065: 'cout' : 선언되지 않은 식별자입니다.
음.. 역시 namespace가 다르니 인식을 하지 못하는 건가?

물론
std::cout << "Hello World";
라고 namespace를 직접 입력해주면 에러없이 실행이 가능하다.

[링크 : http://en.wikipedia.org/wiki/Namespace]

'Programming > C++ STL' 카테고리의 다른 글

리눅스에서 c++ 컴파일시 strcpy / strcat 오류  (0) 2011.10.13
new / new[] / delete / delete[]  (4) 2010.09.16
C++ 레퍼런스 변수(reference variable)  (4) 2010.09.15
C++0x  (0) 2010.09.15
std::vector 포인터  (0) 2010.09.13
Posted by 구차니