본문 바로가기

반응형

Programming

(99)
Visual Studio GPU 정보 보기 안녕하세요. Visul Studio에서 GPU 정보를 보는 포스팅입니다. 매우 간단합니다. CUDA 설치과정에서 Visual Studio에 설치되는 NSIGHT를 통해 GPU 사양확인이 가능합니다. 아래 해당 코드는 CUDA Device정보를 얻어서 다음과 같이 표현할수 있습니다. 여기서 NSIGHT에서 확인한 CUDA Device가 모두 있는거 같네요^^ void CGPUSolid::GpuInfoPrint() { cudaDeviceProp prop; int count = 0; cudaGetDeviceCount( &count ); for (int i=0; i< count; i++) { cudaGetDeviceProperties( &prop, i ); printf( " --- General Informat..
MFC Log 클래스 안녕하세요. MFC환경에서 사용 가능한 로그 클래스입니다. 프로그램 작동 중 로그를 남길 일이 많아 클래스를 만들어 공유합니다. 로그 클래스는 해당 깃으로 들어가 다운 받으시면 됩니다. Url : https://github.com/kjky12/ClassLog.git 저는 해당 로그 클래스를 싱글톤 패턴으로 이용하기 위해 최상위 헤더에 선언하였습니다. 개발 환경은 Visual Studio에서 수행했으며 버전에 따라 서로 다른 파일에 선언해줍니다.(구조가 바뀐 것으로 보이네요) 1. 해당 클래스를 프로젝트에 추가해줍니다.(추가하지 않으면 외부종속성 함수 에러가 발생합니다.) 2. 초기 클래스를 선언해줍니다. Visual Studio 2012, vs2013 Visual Studio 2019 ----------..
파이썬-엑셀시트 csv파일로 나누기 안녕하세요. 오랜만에 파이썬 포스팅을 가지고 왔습니다! 해당 프로그램은 아래 그림 같이 엑셀 파일의 각각의 시트를 csv파일로 나누어 저장하는 소스코드입니다. 회사 업무 중에 시트로 나뉜 데이터를 csv로 사용하기 위해 만들었습니다. 매우 간략한 코드이기 때문에 주석만 보셔도 충분히 이해 가능할 것 같네요. import xlrd import csv # 해당 경로를 입력해줍니다. strPath = "C:/Temp/" # 엑셀파일명을 입력해줍니다. strPathName = "엑셀파일.xlsx" #엑셀의 열어 workbook을 얻어옵니다. wb = xlrd.open_workbook(strPath + strPathName) #workbook의 전체 시트 목록을 얻어옵니다. lst = wb._sheet_list ..
CUDA 처리 구조 안녕하세요! 오늘은 CUDA의 처리 구조에 대해 포스팅을 하겠습니다. CUDA 처리 구조 GPU는 대량의 스레드를 이용하기 때문에 병렬처리를 하기 위한 프로세스의 로드 밸런싱(작업 분할)에 따라 큰 성능 차이가 나타납니다. CUDA에서는 처리영역을 분할하기위해 그리드, 블록, 스레드을 인덱싱하여 처리영역을 구분합니다. 다음 그림과 같이 쿠다는 가장 작은 처리단위인 스레드, 스레드의 집합을 블록, 블록의 집합을 그리드로 구성되며 SIMT(Single Instruction Multiple Thread)구조로 명령이 수행됩니다. 이는 영어 그대로 한 번의 명령으로 대량의 스레드를 처리하기 위한 구조입니다. 병렬처리 프로세스인 SIMD방식과 유사합니다. CPU 병렬처리와 유사한 점으로 결국은 스레드에서 처리된다..
CUDA란? 안녕하세요. 오늘 포스팅은 NVIDIA에서 제공되는 CUDA에 대해 알아보겠습니다. 기본적으로 GPU를 이용해 프로세스를 수행하기 위해 필요한 데이터를 GPU공간에 할당해주어야 합니다. 많은 분들이 개발하시면서 CUDA를 도입하시는 이유는 CPU에서도 수행 가능하지만 성능 개선을 위해서 도입하실 것으로 생각됩니다. 즉, Host(CPU)데이터를 Device(GPU)로 데이터를 옮긴 후 처리가 가능합니다. 쿠다를 이용하기 위해서는 기본적인 처리 흐름은 그림과 같습니다. 1. 메인 메모리의 데이터를 GPU 메모리로 복사합니다. -> GPU 메모리 복사를 위해서는 GPU메모리 할당 + 메모리 복사가 수행되어야 합니다. 2. CPU에서 GPU를 사용할 수 있도록 프로세서를 실행시킵니다. -> CUDA의 커널을 ..
GPU 하드웨어 특징 //안녕하세요 이제 날씨가 많이 쌀쌀하네요 모두 건강 조심하세요... //글을 쓰면서 뭔가 포스팅의 디자인보다는 보기 좋은 포스팅을 하고 싶은데 그게 잘 안되네요... //GPU의 하드웨어 특징에 내용을 많이 쓰려했는데 CUDA와 관련된거 같아서 내용을 약간 줄였습니다. //포스팅 시작하겠습니다. GPU를 이용한 병렬처리 구현 시 고려해야할 사항 중 하드웨어의 특징에 대해 포스팅을 하겠습니다. 제가 생각하기에는 가장 기본으로 생각해야되는 내용으로 GPU하드에어의 특징으로 CPU와의 차이점을 확인하고 해당 프로세스가 CPU로 구현할 것인지 GPU로 구현할 것인지를 판단하는것이 좋다고 생각합니다. (CPU와 GPU의 용도차이가 있으니까요!) 아래 사진은 많이들 보셨을 텐데 아래 사진에대해 분석해본다면 표와 ..
정말 오랜만에 포스팅을 하네요! 정말 오랜만에 포스팅을 했네요...ㅠㅠ 진작에 부지런하게 했어야했는데 미루고 미루다보니... 굳이 변명을 해보자면.... 회사생활 + 대학원 4학기차로 게을러졌다고 변명을 살포시....ㅠㅠ 현재 졸업논문을 작성하고 있는데 제 졸업논문 주제인 GPGPU에 대해 공부한 내용을 포스팅 해볼까 합니다. 제가 공부한 내용을 최대한 정량적으로 표현해보도록 하겠습니다. 물론... 저도 다른 블로그 분들을 많이 보면서 참고했던 부분도 많기에 출처를 꼭 남기도록 하겠습니다. 다른 분들이 작성한 내용보다 제 나름 개발자 분들이 최대한 이해가 쉽도록(?) 써보도록 할게요 갑자기 모두들 날씨가 추워졌는데 다들 옷 따뜻하게 잘 입으셔서 모두 건강하시고요! 모두들 즐프하세용
GPGPU란? GPGPU에 대해 처음 접해보는 분들에겐 위의 설명 정확하지만 너무 어려울 수 있을거 같네요. 다들 기본 프로그래밍 언어에 대한 지식이 있다는 전제로 "CPU 대신 GPU로 데이터를 병렬처리 할 수 있다." 정도 일거 같네요. 위키 백과에서는 다음과 같이 설명이 나와있습니다. "GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산)는 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를, 전통적으로 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술이다. 이를 가능하게 한 것은 프로그램 가능한 층과 고정도 연산을 그래픽 파이프라인에 연결하는 것으로, 이를 통하여 소프트웨어 개발자들..

반응형