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 구차니
Programming/언어론2010. 9. 16. 09:15
포인터는 메모리의 특정 지점을 찍어주는 역활을 한다.
즉, 데이터든 코드든 어디든 찍을수가 있다.

함수 포인터에서 의문점이 생긴것은 바로 함수 포인터의 선언부분이다.
#include <stdio.h>

void testout1(const char *s) {
  printf("시험출력1:%s\n", s);
}

void testout2(const char *s) {
  printf("시험출력2:%s\n", s);
}

// 함수포인터 변수
void (*funcPtr)(const char *s);

int main() {
  // 함수포인터를 testout1, testout2로 각각 대입해보고 실행해본다.
  funcPtr = testout1;
  funcPtr("테스트");
  funcPtr = testout2;
  funcPtr("테스트");
}

[링크 : http://www.redwiki.net/wiki/wiki.php/%C7%D4%BC%F6%C6%F7%C0%CE%C5%CD]

위의 코드를 보면,
 void (*funcPtr)(const char* s);
위의 부분에서 함수 포인터의 인자(arguments)들의 형은 존재하지만, 변수명은 존재하지 않는 경우가 많다.

물론 VS2010 에서 컴파일을 해보아도
변수명이 존재를 하던 변수형만 존재를 하던 상관은 없지만 왜 그럴까? 라는 궁금증이 생겼다.

왜 그럴까?
아마도, 함수 포인터에서 중요한건 연결되는 함수와,
넘겨지는 변수들의 형, 그리고 갯수이지 변수명이 아니기 때문이 아닐까?

어짜피 stdcall 형태로 calling convention을 유지한다면
넘어가는 변수명 따위는 내부적으로는 의미가 없고, 넘어가는 순서가 중요하니 말이다.
그런 이유로, 함수 포인터의 선언에는 변수형만 존재하고 변수명은 옵션으로 존재하는 것으로 생각된다.

[링크 : http://www.cplusplus.com/doc/tutorial/pointers/]

'Programming > 언어론' 카테고리의 다른 글

일급 함수 first-class function  (0) 2025.01.31
dangling if-else  (0) 2014.08.13
double의 정확도 자릿수  (0) 2011.03.25
type system  (0) 2010.09.15
calling convention(콜링 컨벤션)  (0) 2010.04.17
Posted by 구차니