Justin Kim
Logic meets intuition
Justin Kim의 개인 블로그. 뉴로-심볼릭 AI, 온톨로지, Datalog, RDF, GStreamer 등 연구 노트와 기술 에세이.
About the author and editorial principles-
C/C++에서 SIMD와 NEON 동시에 지원하게 작성하기 및 벤치마크
현대 CPU 연산 방식은 데이터를 처리하는 단위에 따라 크게 스칼라(Scalar) 연산과 벡터(Vector) 연산으로 나눌 수 있습니다. 코어 모듈의 성능을 끌어올리기 위해서는 이 차이를 이해하고 적절한 명령어 셋을 활용하는 것이 필수적입니다. 스칼라(Scalar)와 SIMD, 그리고 NEON의 차이 스칼라(Scalar) 연산: 스칼라는 수학에서 방향성 없이 크기만 가지는 단일 값을 뜻합니다. 컴퓨팅 맥락에서 스칼라 연산은...
-
같은 사실, 다른 출처: Named Graph로 신뢰의 경계를 긋다
HR 시스템은 '네이버 재직 중'이라 하고, LinkedIn은 '삼성전자 재직 중'이라 합니다. 서로 다른 출처가 상충할 때, 어떤 정보를 믿어야 할까요? Named Graph는 트리플 묶음에 이름을 붙여 출처와 신뢰도를 관리하는 RDF의 구조입니다.
-
시간이 흐르면 사실도 변한다: RDF Reification으로 맥락 기록하기
RDF 트리플은 '누가 무엇이다'만 말할 수 있을 뿐, '언제부터 언제까지'라는 맥락을 담지 못합니다. Reification을 통해 트리플 자체를 자원으로 만들어 시간과 출처 같은 메타데이터를 부여하는 방법을 알아봅니다.
-
Apache Arrow를 Timely Dataflow에 적용하기 위한 계획
이전 글에서 Timely Dataflow를 위한 전송 프로토콜을 왜 새로 설계해야 하는지, 그리고 5개 레이어 구조의 밑그림을 그렸습니다. 이번 글에서는 그 설계의 한 축이 될 수 있는 Apache Arrow를 살펴보고, 구체적으로 어디에 어떻게 적용할 수 있을지 계획을 세워봅니다. Apache Arrow란 무엇인가 Apache Arrow[1]는 언어 중립적인 컬럼 기반 인메모리 데이터 포맷입니다. 핵심...
-
Timely Dataflow를 위한 전송 프로토콜은 왜 새로 필요한가
Differential Dataflow는 데이터의 변화를 차이(Difference)의 축적으로 표현하고, 변경분만 전파하여 증분 계산을 수행합니다. 이 증분 계산이 단일 머신에서 동작할 때는 공유 메모리를 통해 워커(Worker) 간 데이터를 교환하면 됩니다. 하지만 데이터가 수십억 건으로 늘어나고, 워커를 수십 대의 머신에 분산 배치해야 하는 시점이 오면, 네트워크가 개입합니다. 델타 (data, time, diff) 튜플이 머신 경계를...