본문 바로가기
728x90

프로그래밍 언어73

[CUDA] 벡터 합 예제 해당 포스트에서는 CUDA를 이용하여 어떻게 벡터합을 계산하는지를 고려한다. 두 벡터의 합 1. Process (1) cudaMallc()을 호출하여 입력 배열 dev_a, dev_b, dev_c에 대한 공간을 각각 디바이스에 할당한다. (2) cudaMemcpy()를 사용하여 - cudaMemcpyHostToDevice: 입력데이터를 디바이스로 복사 - cudaMemcpyDeviceToHost: 결과데이터를 호스트로 복사 (3) 모두 사용한 Device의 메모리를 해제한다. 2. code #include #include "cuda_runtime.h" #define N 10 __global__ void add(int *a, int *b, int *c){ int tid = blockIdx.x; // Dev.. 2022. 4. 4.
[C언어] C 언어 레퍼런스 및 학습 순서 정리 읽거나 본 책 및 레퍼런스들은 붉은 색으로 처리했다. Reference Style - All Levels The C Programming Language (Second edition) - Brian W. Kernighan and Dennis M. Ritchie C: A Reference Manual - Samuel P. Harbison and Guy R. Steele C Pocket Reference (O'Reilly) - Peter Prinz, Ulla Kirch-Prinz Beginner Programming in C (3rd Edition) - Stephen Kochan C Primer Plus - Stephen Prata C Programming: A Modern Approach - K. N. K.. 2022. 3. 28.
[Mathamatica] Mathamatica 무료로 이용하기: Wolfram Engine 먼저 시작하기 전에 19년 5월 Wolfram Stephan이 쓴 포스트를 읽으면 좋을 것 같다 [1]. 간단하게 요약하자면, 19년 5월에 Mathematica 측에서 Mathematica의 Kernel인 Wolfram Engine[2]을 무료로 배포를 했다. 해당 Wolfram Engine을 통해서 사용자는 기존 Mathamatica 코드를 C, python등에서 불러와서 사용을 할 수 있으며, Mathematica Notebook 이외의 IDE환경에서 무료로 Mathematica를 사용할 수 있게 되었다. Mathematica VS Wolfram Engine [3,4] 일반적으로 우리가 말하는 Mathematica는 Mathematica Kernel을 지칭한다. Mathematica를 실행시켰을 때.. 2022. 3. 27.
[Mathematica] Jupyter 노트북으로 Mathematica 사용하기 현재 미국에서 한국에 있는 리눅스 서버를 사용하고 있다. 해당 리눅스 서버에서 x-window를 통해 매스메티카 노트북을 사용하는데, 문제는 프론트 엔드인 메스메티카 노트북이 너무 느리다라는 것이다. 하지만 반대로 Jupyter의 경우 미국에서 한국에 있는 서버를 사용하는데 크게 불편함을 느끼지 못했다. 그래서, 메스메티카를 Jupyter 노트북을 통해 사용하고자 한다. 만약 당신이 Mathemtica를 원격으로 사용한다면, 해당 포스트는 도움이 크게 될 것이라고 생각한다. 1. 준비사항 Jupyter 노트북으로 Mathematica를 사용하기 위해선, 아래의 준비물이 필요하다. a. Mathematica Wolfram Engine* • 만일 Mathematica 12이상의 버전이 설치되어있다면 이미 W.. 2022. 3. 27.
[C 언어] 함수와 가변 전달 인자 python에서는 함수의 가변인자를 *kwarg를 이용해서 만들 수 있다. C에서도 동일하게 함수의 가변인자를 줄 수 있다. 함수의 가변인자를 정의하는 것은 크게 두 가지 방법으로 나뉜다. a. 가변 전달 인자 매크로 사용 b. 헤더 파일 stdarg.h 사용 1. 가변 전달인자 매크로 (C99) 1) 가변 전달인자 매크로: ...와 __VA_ARGS__ - 매크로 정의 전달인자 리스트의 마지막 전달인자로 생략기호인 "..."를 사용할 수 있음 - 생략기호(생략기호: ...)가 사용된 경우, 대체 리스트에서 그것을 대체하는 것을 지정하기 위해 미리 정의된 매크로 __VA_ARGS__를 사용할 수 있음 2) Appendix 1 참조 2. 헤더 파일 stdarg.h 사용 stdarg.h와 가변전달인자 매크로.. 2022. 3. 26.
[C 언어] 명령행 전달인자 (argc, argv) 이번 장에서는 C의 main 함수의 전달인자 (parameters)에 대해서 알아본다. C에서는 두 개의 main함수의 전달인자를 사용할 수 있다. a. 2개의 main 함수의 전달인자: argc, argv 1) argc (argument count) - 관례적으로 첫번째 전달인자를 argc로 부른다. - 명령행에 있는 문자열의 갯수 - 컴퓨터 시스템은 스페이스를 사용하여 언제 하나의 문자열이 끝나고 다음 문자열이 시작되는지를 나타낸다. - NOTE: 첫번째 문자열은 항상 프로그램의 이름 2) argv (argument value) - 관례적으로 두 번째 전달인자를 argv (argument value)로 부름 - 문자열들을 가리키는 포인터들의 배열 - NOTE) -- argv[0]: 프로그램의 이름 b.. 2022. 3. 25.
[C 예제] 단어 카운트 입력을 읽고 카운트한 단어의 수를 보고하는 프로그램을 만들려고 한다. 이때, 문자 수, 라인 수, 그리고 단어 수를 카운트 할 수 있어야 한다. 1. 입력과 프로그램의 종료는 어떻게 다룰 것인가? a. 입력: getchar()함수를 이용 b. 프로그램의 종료: 약속된 특정한 문자를 입력할 시, 프로그램이 종료되도록 함 2. 문자 수, 라인수, 단어 계산하는 방법 a. 문자 수 계산: 매 루프 사이클 마다 카운터를 증가시킴 b. 라인 수 계산: 만약 입력이 개행문자이면, 라인 카운트를 증가시킴 c. 단어 계산 - 문제를 단순히 하기 위해, 화이트 스페이스가 포함되어있지 않은 문자들의 한 시퀀스를 단어로 정의 - 단어는 화이트 스페이스가 아닌 문자에서부터 다음 화이트 스페이스 문자까지이다. - 플래그를 0 .. 2022. 3. 24.
[표준 ANSI C 라이브러리] complex.h 설명 • C99은 복소수 계산을 위한 방대한 지원을 추가했다. • C99에서는 아래 3가지의 복소수 데이터 형을 제공한다. - float _Complex - double _Complex - long double _Complex • 해당 라이브러리에선 double, float, long double 이렇게 3가지 버전으로 제공한다. • float 버전과 long double 버전은 함수 이름 끝에 f 또는 l을 붙인다. • 대부분 함수들은 math.h 함수들의 복소수 버전으로서, 접두사 c를 사용한다. 함수 설명 double complex casos(double complex z) • z의 아크 코사인을 복소수로 리턴한다. double complex casin(double complex z) • z의 아크.. 2022. 3. 24.
[C/C++] 최소값 선택 사실 엄청 간단한 함수이긴 하지만, 두 번째 예시를 기록하고 싶어서 작성한다. 1. 첫번째 예시 int mininum(int n, int m){ if (n 2022. 3. 23.
728x90