본문 바로가기

반응형

Programming

(101)
DP(Dynamic Programming) - 동적 계획법 요새 알고리즘을 공부하다보니 전략(?)에 대해 접근 방법이 있는 걸 조금씩 알게되고 있어서 잊지 않게 포스팅을 하려고한다. (다들 파보나치로만 나는 바보라서 더 헷갈렸다... 하지만 파보나치만큼 DP에 딱 맞는 예시는 없는거 같다.) 다른분들의 포스팅에서 매우 상세하게 되어있기 때문에 내가 이해한 내용만 적고 넘어가려한다.(난 정말 쉽고 정확하게 이해하지 않으면 안되기에 매우 허접한 용어로...) 동적 계획법을 풀기위해 필요한것! 1. 점화식 2. 큰 문제를 작은문제로 쪼개 풀기 or 작은문제부터 쭉 해결해나가기 3. 메모이제이션(똑같은 계산 결과는 저장하자) 1. 점화식 "점화식을 만족하는 수열을 점화식의 해"라고 한다.(그래서 최적해 찾기라는 말이 있나보다) -> 쉽게 생각하면 아래 int GooGo..
오라클 데이터베이스, 테이블, 데이터 용량 쿼리문 안녕하세요 데이터베이스 용량 관련 쿼리문을 포스팅합니다. 간단한 내용이지만 종종 사용하게되어 포스팅을 올립니다. 이어 추가되는 쿼리문이 생긴다면 차츰 추가할 예정입니다. 날씨가 덥고 폭우가 쏟아지는데 항상 건강 유의하세요 1. 전체 테이블 개수 SELECT COUNT(*) FROM ALL_TABLES; 2. 데이터베이스 용량 -- 전체 DB 용량(GB) select sum(bytes)/1024/1024/1024 from dba_data_files; -- 사용한 DB 용량(GB) select sum(bytes)/1024/1024/1024 from dba_segments; -- 사용 가능한 DB 용량(GB) select sum(bytes)/1024/1024/1024 from dba_free_space; 3...
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의 용도차이가 있으니까요!) 아래 사진은 많이들 보셨을 텐데 아래 사진에대해 분석해본다면 표와 ..

반응형