본문 바로가기

전체 글

(1973)
operator 수학적 해체 - ReLU 기본 정의는ReLU(x) = max(0, x)tensor 에서는 각 원소에 독립적으로 동일한 함수를 적용,따라서 Add/Mul 보다 오히려 fusion 관점에서는 더 단순한 operator 이다. 1. ELEMENTWISEReLU 는 명확한 elementwise 2. ELEMENT_LOCAL하나의 출력 y_i 르 ㄹ계산하는 데 다른 위치의 값은 필요하지 않다.element_local 특성도 확실, 특히gemm - relu같은 구조에서 중요gemm 이 하나의 output element 를 계산한 순간accrelustore할 수 있는 가능성을 제공한다. 3. SHAPE_PRESERVINGAdd/Mul 과 달리 이 부분이 훨씬 명확즉 항상 output.shpae == input.shape 4. BROADCAS..
operator 수학적 해체 - MUL 기본 형태는z = x yTensor 에서는 같은 shpae 끼리의 elementwise multiplication 또는 broadcasintg multiplifation으로 생각할 수 있다. 각 출력 원소는 대응되는 입력 원소들에만 의존한다. 1. ELEMENTWISE명확하게 elementwise 2. ELEMENT_LOCAL하나의 출력을 위해 다른 출력이 필요하진 않음 3. BROADCASTBLEmul 도 broadcasting 지원, index mapping 만으로도 계산할 수 있다. 4. SHAPE_PRESERVINGAdd 와 동일한 결과ㅏ 5. SIDE_EFFECT_FREE순수 tensor multiplication 은 입력이나 외부 상태를 변경하지 않는다. 6. MATERIALIZATION_OP..
operator 수학적 해체 - Add 1. ADD가장 기본적인 형태는z = x + y스칼라에서는 단순히 z_i = x_i + y_i이고, tensor 는 shape 관계에 따라 elementwise 혹은 broadcasting addtion 이 된다.중요한 점은 각 출력 원소, Z_ij 가 다른 위치의 값에 의존하지 않는다는 것이다.이 특성이 Add masking 에서 가장 중요한 출발점이다. 2. ELEMENTWISEAdd 는 기본적으로 Elementwise다만 Elementwise 의 정의를 명확히 해두는 것이 좋다.출력의 각 logical element 가 대응되는 입력 element 들의 동일한 scalar function 을 적용하여 계산된다 3. ELEMENT_LOCALELEMENTWISE 와 비슷해보이지만 구분할 가치가 있다. ..
문장은 짧고, 의미는 "각자의" 삶만큼 길다 - 불완전한 언어가 무한에 가까운 해석을 만들어내는 방식 1. 언어는 의미를 그대로 운반하지 않는다보통 언어를 생각과 의미를 상대방에게 전달하는 수단이라고 여긴다.내가 가진 생각문장으로 표현상대방에게 전달동일한 생각이 복원그러나 실제 의사소통은 단순하지 않다. 같은 문장을 들은 두 사람이 완전히 같은 장면과 감정을 떠올리는 경우는 거의 없다.문자는 동일하고 문장의 구조도 고정되어 있지만, 그 문장이 표현하는 의미 공간은 각자가 살아온 경험에 따라 달라진다.따라서 언어는 의미 자체를 전달하는 상자라기보다, 상대방의 내부에 이미 존재하는 경험을 호출하는 신호에 가깝다. 2. 문장은 의미의 저장소가 아니라 검색어다 하나의 문장만으로 화자의 모든 기억과 감정을 전달하는 것은 불가능,그럼에도 상대방이 같은 경험을 공유하고 있다면 짧은 문장 하나로 충분하다.이때 문장은 ..
문장에서 의미 공간으로 - 기존 언어의 한계와 프롬프트 기반 의사소통의 가능성 1. 문제 제기인간의 언어는 생각을 그대로 옮기는 통로가 아니다. 뇌에서는 감각, 기억, 감정, 의도, 가능성이 동시에 얽혀 움직이지만, 말고 ㅏ문자는 이것을 한 번에 하나씩 나열되는 기호로 바꾼다.고차원적이고 병렬적인 내부 상태단어와 문장으로 압축상대방이 자신의 경험과 문맥으로 의미를 재구성따라서 문장은 생각의 원본이라기보다 상대방의 내부에서 유사한 생각을 만들어내기 위한 신호에 가깝다. 이 불완전성은 언어의 결함인 동시에 작동 조건, 내부 상태를 하나도 빠짐없이 전달하려 한다면 한 번의 의사소통에 끝없는 설명이 필요하다.정확성을 일부 포기하는 대신, 공유된 문맥을 이용해 적은 신호로 많은 의미를 전달한다. 문제는 인간이 다루는 대상이 복잡해질수록 이 압축 방식의 한계가 커진다는 데 있다.일상적 경험은..
AICF Labs Masking Strategy 1. 목적AICF Labs의 masking은 최적화 결과를 직접 결정하기 위한 규칙표가 아니다.masking의 역할은 더 단순하고 더 근본적이다.그래프를 따라가며, 어떤 변형 가능성이 아직 제거되지 않았는지를 저렴하게 추적한다.예를 들어 다음 그래프가 있다고 하자.GEMM ↓BiasAdd ↓ReLU ↓Add우리는 이 그래프를 보고 곧바로GEMM + BiasAdd + ReLU + Add를 하나의 kernel로 fusion해야 한다고 결정하지 않는다.대신 먼저 다음과 같은 질문을 한다.GEMM 이후의 계산을 epilogue 형태로 확장할 가능성이 있는가?BiasAdd의 중간 tensor를 제거할 가능성이 있는가?ReLU를 producer 계산 내부로 포함할 가능성이 있는가?Add까지 같은 실행 영역에 ..
AICF Labs : 의미적 후보 생성과 실험 기반 실행 계획 탐색 1. 출발점하나의 변환 결과를 곧바로 확정하는 대신, 먼저 계산의 의미를 보존할 수 있는 여러 후보를 찾고, 각 후보를 실제 실행 환경에서 비교한다.원본 그래프의미적으로 가능한 후보 탐색후보 실행 그래프 생성GPU 구현 후보 연결수치 검증 및 성능 측정환경에 적합한 실행 계획 선택 2. 수식의 축약과 실행 최적화는 다르다Fusion 은 여러 연산을 수학적으로 짧게 표현하는 것만을 의미하지 않는다.중간 결과와 반올림 과정 등의 변화로 의미가 미세하게 달라질 수 있다.Fusion 은 중간 global memory 접근과 kernel launch 를 줄일 수 있지만 다음 비용을 증가시킬 수 있다.레지스터 사용량shared memory 사용량코드 크기branch divergencecompilation 및 spe..
AICF Labs : 최적화 가능성과 GPU 실행 현실을 함께 탐구하는 연구 프레임 워크 하나의 자동 최적화기나 새로운 CUDA 코드 생성기를 만드는 프로젝트가 아님AI 연산 최적화에 서로 다른 두 종류의 질문이 섞여 있다는 문제의식에서 시작하나는 계산 의미와 구조에 관한 질문여러 연산자가 이어질 때, 수학적으로 어떤 변형 가능성이 남아 있는가?다른 하나는 실제 실행에 관한 질문이미 정의된 계산이 GPU 에서 어떤 코드와 명령어로 표현되고, 실제 하드웨어에서는 어떻게 실행되는가? 왜 두 연구 영역을 분리하는가일반적인 컴파일러 구조에서는 모델이나 연산 그래프가 여러 중간 표현을 거쳐 최종 실행 코드로 내려간다.이 구조는 완성된 시스템을 만드는 데는 효과적이지만, 최적화 연구 과정에선느 서로 다른 판단이 하나의 흐름 안에 섞이기 쉽다.GEMM - Bias - ReLU 가 하나의 CUDA 커널로 ..