본문 바로가기

분류 전체보기

(158)
C++ Cuda CPU와 GPU에서의 연산 속도 비교하기 CPU와 GPU에서의 연산 속도 비교하기 GPU에서의 속도가 400배 이상 빠르다. 덧셈 연산에서 인텔 I7 CPU에 비해 RTX 2070 super 가 400배 이상 빠름을 알 수 있다. 코드 >> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9..
C++ Cuda 메모리 할당에서의 예외 처리 Cuda 프로그래밍에 있어서 메모리 할당 시에는 예외 처리를 잘 해야 한다. 사소한 메모리 관리를 놓치면, 프로젝트가 망가질 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 10..
C++ Cuda GPU에서의 더하기 연산 C++ Cuda GPU 에서의 더하기 연산 __global__ 이 붙은 함수 내부는 gpu 단에서 돌아가는 연산이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 #include "cuda_runtime.h" #inclu..
C++ CUDA 문제 2. CPU에서 GPU로 데이터를 전달하여 3차원 공간에서 병렬 실행하기 주의할 점은 cudaMalloc을 사용할 시, 함수 인자로 이중포인터(void**(&d_data))를 넘겨야 한다. 사람들이 왜 cudaMalloc을 사용할 시 이중포인터를 함수 인자로 넣어야 하는지 궁금해 하는 경우가 많다. 간단하게 이유를 설명 하자면 d_data의 주소(&d_data)는 cpu main 함수 스택에 저장 된다. cudaMalloc((void**)&d_data, array_byte_size) 에서는 gpu 내에 d_data 값에 동적 메모리 할당을 하고, 이후 gpu 내에서 d_data 값이 새롭게 지정되며, 이 메모리에서 gpu 연산이 되기 때문이다. 그렇지만 d_data의 주소(&d_data)는 cpu main 함수 스택에서 처음과 같이 유지된다. 따라서 이중 포인터를 사용하면, ..
C++ Cuda 문제 1. Thread index, Block Index, Grid Index 출력하기 문제 : Grid가 X,Y,Z 방향으로 4차원의 쓰레드를 가지고 있으며, Grid 안의 Block은 X,Y,Z 방향으로 각각 2차원의 쓰레드를 가지고 있다. 이 경우에 threadIdx, blockIdx, gridDim을 출력하는 프로그램을 작성하시오 정답 : #include "cuda_runtime.h" #include "device_launch_parameters.h" #include __global__ void print_Idx_Dim() { printf("threadIdx.x : %d, threadIdx.y : %d, threadIdx.z : %d\n", threadIdx.x, threadIdx.y, threadIdx.z); printf("blockIdx.x : %d, blockIdx.y : %d..
(파이썬) 국토교통부 실거래가 자료수집 크롤링 국토교통부 실거래가 자료수집 크롤링¶ 통계청 경인지방통계청 경제조사과에서는 건설경기동향조사를 실시하고 있다. 건설경기동향조사는 매월 건설 동향을 파악하기 위해 건설의 수주액과 기성액을 조사하고 있다. 우리나라 GDP에서 투자 기준으로 봤을 때 건설투자는 15%를 차지하고 있으며 건설 종사자수는 200만명에 이른다. 건설경기동향과 부동산은 밀접한 관계를 맺고 있을 것으로 추측해 볼 수 있겠다. 그래서 경제조사과에서는 부동산 정보를 업무에 활용하고자 매월 실거래가 자료를 수집하여 건설경기동향조사의 보조 지표로 활용하고 있다. 여기에서는 서울 지역 아파트의 실거래가 내역을 시범적으로 수집해보고자 한다. 국토교통부 실거래가 자료 수집 방법을 요즘 인기 있는 언어인 파이썬으로 작성하였습니다. 업무나 공부에 관심 ..
[C언어] 최소공배수 구하기 (정보처리기사 외) While문 쓰기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include int main() { int num1; int num2; int max_num, min_num; scanf("%d %d", &num1, &num2); max_num = (num1 > num2) ? num1 : num2; // 두 수 중에서 더 큰 수를 골라준다 min_num = (num1
[c 언어] 소수의 개수 구하기 (1차원배열, do~while, while, if, 정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include #include // malloc 함수 포함 #include // memset 함수 포함 int main() { int *arr = malloc(sizeof(int) * 10000); memset(arr, 0, sizeof(int) * 10000); int i = 2; // 2 부터 소수 판정 시작 int j = 2; // index int n; int sum = 0; // 소수가 아닌 것들의 합 scanf("%d", &n); for (i=2; i