Data Class and Callback Class

스태틱 클래스 함수라도 자기 자신을 참조하는 스태틱 클래스 변수에 힘입어 자신의 비스태틱 멤버 변수 및 함수에 접근할 수 있게 되었다. 그러나 콜백 함수 내부에서 접근 제한이 불가능한 문제를 발견할 수 있었다. 이러한 문제는 데이터/콜백 클래스를 각기 완전히 분리를 하면 해결할 수 있다. #include <iostream> // 전역변수 콜백 함수 포인터. // 어떤 라이브러리 어딘가에 있다고 가정한다.… Data Class and Callback Class 계속 읽기

Static Variable

일반적인 클래스로는 c-style의 콜백을 처리할 수 없다는 것을 알았고, 이는 단순한 대처로는해결하기 힘듬을 알았다. 그렇다면 어떻게 클래스를 사용하면서도, c-style을 유지할 수 있을까? 한 가지 방법으로는 static 변수를 멤버 변수로 사용하는 방법이다. 그러나 이 방법은 그리 유용하지 못하다. 왜냐하면 static 멤버 변수는 클래스를 선언하지 않고도 사용 가능하며, 그 클래스가 모두 공유하는 변수이기 때문에, 사실상 전역 변수이나… Static Variable 계속 읽기

Callback and Class

C-Style의 callback 코드에 살짝 C++ 개념을 얹어 보자. #include <iostream> // 전역변수 콜백 함수 포인터. // 어떤 라이브러리 어딘가에 있다고 가정한다. void (*g_callback)(void) = NULL; // 우리는 C-Style의 함수가 아닌 class를 필요로 한다. // C++에서 class와 struct의 차이는 단지 private이 기본이냐, public이 기본이냐의 차이다. struct cb_class { // 라이브러리는 이 함수를 필요로 한다. // static… Callback and Class 계속 읽기

C-Style Callback

먼저 C-Style Callback이 무엇인지를 설명하고자 한다. 보다 기술적인 설명을 하는 것 보다 다음 코드를 읽으면서 이야기를 진행하자. #include <stdio.h> #include <stdlib.h> // 전역변수 콜백 함수 포인터. // 어떤 라이브러리 어딘가에 있다고 가정한다. void (*g_callback)(void) = NULL; // 우리가 직접 만들어야 하는 콜백 함수 // 라이브러리는 이 함수를 필요로 한다. void callback(void) { printf(“Our callback function… C-Style Callback 계속 읽기

CUDA를 위한 Visual Studio Template 변경

위 그림처럼 CUDA의 ‘.cu’, ‘.cuh’ 확장자를 가진 파일도 비주얼 스튜디오의 “Add New Item” 다이얼로그 박스를 통해 추가시키는 방법을 기록한다. “Add New Item” 메뉴를 클릭하면 나오는 메뉴 설정은 (C++의 경우) 다음과 같이 세팅한다. “C:Program Files (x86)Microsoft Visual Studio 10.0VCvcprojectitems” 디렉토리로 가서 ‘newc++file.cpp‘ 파일과 ‘hfile.h‘ 두 파일을 찾아 복사한 후 각각 ‘NewCUDAFile.cu‘, ‘CUDAHFile.cuh‘로 변경한다.변경한 확장자를 가진 파일을… CUDA를 위한 Visual Studio Template 변경 계속 읽기

CUDA 초기 세팅 (Ver 4.1 기준)

[패키지 설치] 보통 CUDA를 설치하면 아래 세 가지 패키지를 설치하게 된다. CUDA Developer Driver: CUDA 개발을 위한 드라이버. CUDA Toolkit: nvcc, 디버거, 프로파일러 등이 있는 CUDA 개발을 위한 패키지. GPU Computing SDK: 샘플 코드들 패키지를 설치하면 다음과 같은 전역 환경 변수가 정의된다. CUDA_BIN_PATH CUDA_INC_PATH CUDA_LIB_PATH CUDA_PATH CUDA_PATH_V4_1 그리고 다음 환경 변수가 업데이트된다. Path   [Visual… CUDA 초기 세팅 (Ver 4.1 기준) 계속 읽기