컴퓨터 구조 - 병렬 처리 - Cache coherence
병렬 처리 - Cache coherence 1. 개요 UMA든, NUMA든 각 프로세스나 코어는 캐시를 가진다. UMA인지 NUMA인지를 구분하는게 메모리이기 때문이다. 이 경우 매우 일이 복잡해지는데 각 코어나 프로세스가 가지는 캐시 값을 동기화해주어야하기 때문이다. 이를 Cache coherence라고 하며 이를 위한 여러가지 방법들이 있다....
병렬 처리 - Cache coherence 1. 개요 UMA든, NUMA든 각 프로세스나 코어는 캐시를 가진다. UMA인지 NUMA인지를 구분하는게 메모리이기 때문이다. 이 경우 매우 일이 복잡해지는데 각 코어나 프로세스가 가지는 캐시 값을 동기화해주어야하기 때문이다. 이를 Cache coherence라고 하며 이를 위한 여러가지 방법들이 있다....
병렬 처리 1. 개요 요즘이야 GPU를 통한 병렬 처리가 엄청 대중화되어있는 시기이지만, 여기서 이야기하는 병렬 처리는 다수의 CPU가 있는 Multi-processors를 말하는 것이다. 이 Multi-processors라는 것은 한 개의 CPU안에 여러개의 코어가 있는 상황일 수도 있고, 혹은 다수의 CPU가 연결되어있는 상황을 말하는 것 일수...
Veusz 1. 개요 논문 쓸때는 깔끔한 그래프는 필수이다. python이나 excel 그래프는 좀 애매하게 나올때가 있는데, 이럴때 필요한게 Veusz라는 프로그램이다. 이 프로그램은 windows와 macOS, linux 모두에서 돌아간다. PDF, Postscript, SVG, EMF를 포함한 벡터 및 비트맵 출력을 지원하며 텍스트, CSV,...
Ribbon Paper 1. 개요 슈퍼컴퓨터 21년도에 올라온 논문이다. 논문 풀네임은 “Ribbon: Cost-Effective and QoS-Aware Deep Learning Model Inference using a Diverse Pool of Cloud Computing Instances”이다. 직역하자면 “다양한 클라우드 컴퓨팅 인스턴스 ...
DiskANN 1. 개요 DiskANN은 그래프 기반의 대규모 근사 최근접 이웃 탐색 시 스템으로, 64 GB 메모리와 저렴한 SSD만으로 수십억 개의 벡터 를 색인 및 검색할 수 있도록 설계되었다. 이는 전통적인 메모리 기반 근사 최근접 이웃 탐색방식이 요구하는 대용량의 RAM 용량 한계를 피하면서도, 높은 재현율과 낮은 탐색 지연을 균형있게 제공...
논문용 그래프 - 산점도 논문이나 혹은 회사에서 PPT로 두 개의 값 간의 선형적인 관계를 산점도로 표기하고 싶을수 있다. 또한, 두 값이 선형적인 관계가 있는지 간단히 체크하고 싶을 수 있다. 그러면 아래의 코드를 쓰면된다. import pandas as pd import matplotlib.pyplot as plt plt.rcParams['fon...
VectorDB - 테스트용 Dataset 1. 개요 어떤 것의 성능을 알아보려면 가장 좋은건 테스트를 해보는 것이다. 물론 이론적인 것이 먼저 들어오고 이후에 실험으로 그를 뒷받침하는 형태가 가장 일반적이지만, 일단은 대부분 테스트가 무조건 들어온다는 점에서는 이견이 없을거라 생각한다. 이번 시간에는 VectorDB를 테스트해보기 위한 Datase...
부동 소수점 표현 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개의 데이터를 찾을 때 가장 좋은 방법은 무엇일까? 여기서 좋은 방법이라는 것은 사실 굉장히 모호한 표현이고 아래와 같이 나...