Vector DB - 개요
Vector DB 1. 개요 원래는 No-SQL에 포함할까 했지만 분류에 대해 의견이 분분하여 그냥 별도의 항목으로 분리했다. 현재 LLM에 대한 관심이 뜨거운 가운데 이 Vector DB도 굉장히 유명해졌는데 LLM에서 취급하는 데이터가 바로 이 Vector Data이고, 이를 이용하여 학습되지 않은 문제에 대해서도 어느정도 답변을 내놓을 수 있는...
Vector DB 1. 개요 원래는 No-SQL에 포함할까 했지만 분류에 대해 의견이 분분하여 그냥 별도의 항목으로 분리했다. 현재 LLM에 대한 관심이 뜨거운 가운데 이 Vector DB도 굉장히 유명해졌는데 LLM에서 취급하는 데이터가 바로 이 Vector Data이고, 이를 이용하여 학습되지 않은 문제에 대해서도 어느정도 답변을 내놓을 수 있는...
CUDA Reduce 예제 분석 이번 시간에는 수업중에 나온 Reduce 함수에 대한 예제를 분석해보겠다. 1. Reduce 예제 일단은 Reduce 함수에 대한 코드이다. __global__ void reduce4(float* y, float* x, int N) { extern __shared__ float tsum[]; int id = ...
TLP(Thread level parallelism) 1. 개요 이전의 Pipeline에 대한 부분은 ILP(Instruction Level Parallelism)에 대한 내용이었다. ILP의 주요 내용은 Super Scalar 구조를 통해 CPI를 줄이고 Instruction에 대해 병렬 처리를 하는 것이었다. 하지만 이 Instruction ...
Branch prediction 1. 개요 분기문은 비용이 큰 명령중 하나다. 5-stage pipeline에서 분기문이 발생하면 다음 명령어를 어떤 것을 실행해야할지 알수가 없고, 예측해서 명령어를 갖고 온다고 한들 해당 예측이 틀려버리면 파이프라인 전체를 비워버려야하기 때문에 다수의 사이클을 허비하게 된다. 때문에 현대의 CPU는 분기 예측을 ...
Pipelining 종류 이전 포스팅에서는 5 Stage 기준으로 파이프라인이 어떻게 되는지 성능은 어떻게 되는지 알아보았다. 이번에는 총 3개 정도의 아키텍처를 살펴보고 파이프라인이 어떻게 되는지 성능은 어떻게 되는지 알아보자. 1. Deeper Pipeline 좀 더 깊은 파이프라인 단계를 가진 아키텍쳐이다. 이전에 5 stage로 파이프라인을...
RAID 1. 개요 RAID는 한 마디로 다수의 SSD/HDD를 사용하기 위한 방법이다. 그냥 한 개의 스토리지 디바이스만 쓰면 되는거 아닌가 하는 의문이 들 수 있다. 2025년 1월 기준 현존하는 최대 용량이 HDD는 32TB[1] 인데 이거면 충분하지라고 생각할 수 있지만 매일 기가(GB) 단위는 우습게 넘기고 테라(TB) 혹은 페타(PB...
CUDA 1. 종류 일반적인 용도의 병렬 컴퓨팅을 위한 프로그램을 할 수 있는 모델이라고 생각하면 된다. 소위 말하는 CUDA에는 사실 두 가지 종류가 있다. Driver library NVIDIA 드라이버를 설치하면 자동으로 설치된다. 저수준의 CUDA 프로그래밍을 목적으로 한다 지원하는 API이름은 CUDA Driver API이다. ...
파워 소모 1. 개요 CPU 즉, 프로세서에서 파워 소모는 매우 중요한 이슈이다. 이는 23년도부터 프로세서 클럭 수가 올라가는 속도가 둔화된 이유와도 직결되기 때문이다. 이는 파워소모가 동반하는 발열 탓이다. 이 발열을 여러가지로 우회해보려고 현재도 많이 노력하지만 본질적으로 열이 발생하는 문제이기 때문에 2025년 현재도 4GHz를 넘는 C...
I/O 구조 DB에서 어떤 데이터에 대해서 읽고 쓴다고 해보자. 이 DB는 C, C++로 개발되었다고 할 때 Data I/O의 구조는 아래와 같다. DB에서 데이터를 읽는 요청을 한다고하면 먼저 대상 데이터가 있는 파일에 대해서 정보를 알아내야한다. DB에서 Table 혹은 Collection(Document DB 기준)은 모두 파일로 저장되기...
GPU Programming 1. 개요 이전엔 GPU라고 하면 그래픽 작업이나 게임할때 필요한 부품이었다. 하지만 최근에 AI가 급속도로 발달하면서 GPU의 필요성이 매우 높아지고 있다. 이러한 GPU를 사용하기 위해서는 Python의 Pytorch 나 Tensorflow를 이용하여 코딩할 수도 있겠지만 여기서는 C와 C++을 이용한 코드를 이용하...