부동소수점 표현
부동 소수점 표현 1. 개요 최근 AI가 발달하면서 부동 소수점 표현이 중요해지고 있다. 부동 소수점은 정밀도에 따라 데이터 크기가 달라진다. 2. 정밀도 1) Half precision 수 하나당 2bytes를 사용하는 표기법이다. 부호 : 1bit 지수부 : 5bit 소수부 : 10bit 2) Single precision 수 하나당 ...
부동 소수점 표현 1. 개요 최근 AI가 발달하면서 부동 소수점 표현이 중요해지고 있다. 부동 소수점은 정밀도에 따라 데이터 크기가 달라진다. 2. 정밀도 1) Half precision 수 하나당 2bytes를 사용하는 표기법이다. 부호 : 1bit 지수부 : 5bit 소수부 : 10bit 2) Single precision 수 하나당 ...
메모리 구조에 따른 소프트웨어 최적화 1. 개요 최근 컴파일러에는 대부분 포함되어있는 내용이다. 메모리 구조와 Cache 구조에 따른 최적화 기법인데, 기본적으로 아래의 목적을 가지고 실행 된다. Temporal locality 증가 Spatial locality 증가 Conflict 제거 위 세 가지를 만족하는 방향으로 조정하면 ...
Vector DB - ANN(approximate nearest neighbor) 1. 개요 가령 X,Y 값 두 개로 이루어진 점의 집합인 데이터가 있다고 생각해보자. 여기서 새로운 점이 추가되었을 때 이 점과 가장 가까운 K개의 데이터를 찾을 때 가장 좋은 방법은 무엇일까? 여기서 좋은 방법이라는 것은 사실 굉장히 모호한 표현이고 아래와 같이 나...
Vector DB - Embedding Functions 1. 개요 벡터 데이터 베이스에 넣으려면 데이터를 벡터화 해야한다. 데이터를 벡터화하기 위해서는 벡터화 함수가 필요하다. 벡터화 함수는 여러 종류가 있으며, 심지어 같은 종류의 데이터라도 종류가 많다. 2. 텍스트 벡터화 텍스트도 단어와 문자 두 가지로 나뉜다. 1) 단어 임베딩 이전에 포...
Object Storage System 1. 도입 1956년 IBM에서 등장한 최초의 HDD인 RAMAC 이후로 block device는 근 70여년간 컴퓨터의 보조 기억장치로써 사용되어왔고, 이후 등장한 SSD 역시 block device로써 작동했으며 이후 등장한 대부분의 File system들은 이 block device에 맞춰져서 개발되었...
CUDA Programming 문법 1. 개요 NVIDIA GPU를 이용하여 프로그래밍을 하려면 기본적으로 CUDA 프로그래밍에 대해서 알아야한다. 프로그래밍을 하기 위해서는 프로세서 구조를 어느정도 알아야하는데, 이전까지 포스팅은 GPU의 구조에 대한 설명이었다. 이번 포스팅은 CUDA 프로그래밍에 대한 기본적인 내용을 알아보겠다. 2. 주요 ...
Cache 성능 1. 개요 기본적으로 Memory에 대한 성능을 이야기 할때 AMAT(Average Memory Access Time)를 가지고 말한다. 이 AMAT는 아래와 같이 산출한다. [AMAT = Hit Time + Miss Rate + Miss Penalty] Hit Time : Cache에 data가 있고 이 데이터를 갖고 오기까...
Cache 1. 개요 캐시(Cache)란 CPU 연산에 비해 상대적으로 느린 메모리 접근 속도를 커버하기 위해 만든 임시 저장장소이다. 기본적으로 지역성에 근거하여 빨라질 것이라는 기대아래 설계된 것으로, 실제로 Cache 덕분에 성능은 급격하게 올라갔다. ※ 지역성이란? 기본적으로 공간 지역성(Spatial Locality), 시간 지역성(Tem...
Apache Kafka 1. 개요 Apache Kafka는 이벤트 스트리밍을 처리하는 플랫폼이다. 이벤트 스트리밍을 처리하기 위해 분산될수 있고, 저장하는 곳으로도 사용이 가능하다. 원래는 Linked-in에서 만들었고 그 회사내에서 사용하려고 했지만 오픈소스화 되면서 많은 곳에서 사용중에 있다. 2. 용도 1) 메시징 카프카는 메시지 브로커로 사...
Vector DB 1. 개요 원래는 No-SQL에 포함할까 했지만 분류에 대해 의견이 분분하여 그냥 별도의 항목으로 분리했다. 현재 LLM에 대한 관심이 뜨거운 가운데 이 Vector DB도 굉장히 유명해졌는데 LLM에서 취급하는 데이터가 바로 이 Vector Data이고, 이를 이용하여 학습되지 않은 문제에 대해서도 어느정도 답변을 내놓을 수 있는...