Y. SHEN · L. CHEN (EDS.) GRAPH NEURAL NETWORK TRAINING — FROM DATA MANAGEMENT PERSPECTIVE SPRINGER · ML: FOUNDATIONS, METHODOLOGIES, AND APPLICATIONS · 2026

CHAPTER 4 — 전체 요약

확장 가능한 GNN 학습을 위한
계산 가속

Accelerating Computation for Scalable GNN Training — 모델 수준의 DAHA와 연산자 수준의 STile

Jingzhi FangHKUST
Zhiyuan LiHKUST

모델 수준. 주류 프레임워크는 미니배치 학습에서 배치 준비와 CPU–GPU 데이터 전송으로 상당한 오버헤드를 감수하며, 제약된 디바이스 활용 패턴이 파이프라인 병렬성의 기회를 봉쇄한다. 이를 극복하기 위해 데이터 인지·하드웨어 인지 실행 계획으로 엔드투엔드 학습 워크플로를 최적화하는 GNN 학습 프레임워크 DAHA를 제안한다.

연산자 수준. 희소 연산자 가속을 위한 기존 접근은 희소 텐서를 분해하고 특정 희소 패턴에 맞춘 하이브리드 포맷 조합을 탐색하지만, 탐색 공간 크기와 탐색 시간 사이의 근본적 트레이드오프에 직면해 달성 가능한 효율이 제한된다. 이에 유연한 희소 텐서 변환으로 너비(breadth)를, 다중 수준 분해로 깊이(depth)를 확장하는 프레임워크 STile를 제안한다.

§4.2 · MODEL LEVEL

DAHA

DATA AND HARDWARE-AWARE EXECUTION PLANNING

CPU·GPU를 모두 범용 프로세서로 취급해 배치 내 미세 연산을 임의 디바이스에 동적 배정한다. 3대 모듈 — 그룹 기반 교대 파이프라이닝, 배치 내 EPG 재작성, 배치 간 스케줄링.

GCN 48.4–59.1% 가속 · 미니배치 최대 81%(vs DGL) / 73%(vs SALIENT)

§4.3 · OPERATOR LEVEL

STile

AUTOMATIC HYBRID SPARSE FORMAT SEARCH

MSFD(다중 수준 희소 포맷 분해) 문제를 정식화하고 NP-hard임을 증명한 뒤, 6개 변환 프리미티브·3개 기본 포맷·루프라인 비용 모델·철회형 그리디 알고리즘으로 해결한다.

SpMM 최대 18.0×(vs cuSPARSE) · 1.4–2.7×(vs SparseTIR)

1% ↔ 10%

셔플링의 이중 효과 — 정확도는 1% 이상 향상시키지만 엔드투엔드 학습 속도는 최대 10% 저하시킨다. DAHA의 적응적 셔플링이 이 트레이드오프를 조정한다

ADAPTIVE SHUFFLING · §4.2.3 · TABLE 4.2
NP-hard

배치 간 스케줄링은 유연 잡숍 문제(FJSP)의 변형이고, MSFD는 가중 집합 커버로 환원되어 Theorem 4.1로 NP-hard가 증명된다 — 양쪽 모두 휴리스틱이 불가피하다

FJSP [2] · THEOREM 4.1 · §4.3.1
3.6×

단일 수준 포맷 선택 대신 다중 수준 분해를 고려하는 것만으로 얻어지는 연산자 효율 향상 폭(일부 사례). 탐색 너비 확장은 1.0–2.6× 추가 개선

MULTI-LEVEL DECOMPOSITION · §4.3.1 · TABLE 4.12
4.1

배경

BACKGROUND

GNN[19]은 네트워크 임베딩[21], 추천 시스템[30] 등에서 입증된 효능으로 광범위하게 채택되었고, 그 결과 효율적 학습 방법론의 개발이 중심적이고 지속적인 연구 과제가 되었다. 미니배치 샘플링[4–7, 12, 15, 32, 33]이 대중적 패러다임으로 부상했으며, 그래프 구조 데이터의 고유한 계산 요구 때문에 PyG[8]·DGL[26] 같은 GPU 가속 특화 프레임워크가 필요하다 — 기존 딥러닝 시스템은 GNN 연산에 내재한 불규칙 데이터 접근 패턴을 처리할 수 없다.

지배적 학습 아키텍처는 역할을 분담한다 — CPU는 배치 샘플링과 특징 슬라이싱을, GPU는 핵심 모델 계산을 담당한다. 이 분리는 결정적인 파이프라인 의존성을 만든다. CPU의 느린 배치 준비는 GPU를 유휴 상태로 만들고[35], 이웃 폭발과 큰 특징 차원이 유발하는 막대한 전송량은 큰 통신 비용을 부과한다[10, 33]. 실증 연구들은 배치 준비CPU–GPU 데이터 전송을 현대 GNN 학습 시스템의 쌍둥이 병목으로 지목한다[10, 16, 20, 24, 27]. 파이프라인상 순차적 위치 탓에 이들은 하류 GPU 연산을 직접 조여 하드웨어 활용을 준최적으로 만든다. 최근 연구들이 대안적 디바이스 활용 패턴을 탐구하기 시작했으나 탐색된 설계 공간은 여전히 제약적이며, 특히 세밀한 연산자 스케줄링을 통한 파이프라인 병렬성의 잠재적 최적화를 간과한다.

연산자 수준에서는 희소 연산자(희소 텐서를 입력으로 받는 연산자)가 GNN에서 최적화되어야 할 중요한 부류다. SpMM(희소–조밀 행렬 곱)은 희소 행렬의 0과 관련된 곱셈–덧셈을 건너뛸 수 있고, SDDMM(샘플링된 조밀–조밀 행렬 곱)은 조밀 행렬 곱을 계산하되 결과의 일부만 샘플해 출력한다. GNN에서 희소 인접행렬[51, 67, 69]은 텐서에 다양한 희소 패턴을 가져온다.

다양한 희소 패턴에 대응하기 위해 여러 희소 포맷이 개발되었으나, 각각 서로 다른 패턴에서 장단점을 보이며 단일 포맷이 모든 희소 텐서에 적합할 수 없다는 것이 널리 인정된다. 게다가 하나의 희소 텐서가 영역별로 다른 희소 패턴을 가지면 최적 성능을 위해 포맷들을 결합해야 한다. 이에 하이브리드 포맷 — 희소 연산자를 고려해 텐서를 여러 희소 서브텐서로 분해하고 각각 최적 포맷을 선택한 뒤 그에 기반해 계산을 스케줄링[48, 55, 65, 66, 76, 78] — 이 시도되었다. 그러나 기존 연구는 대개 탐색 공간과 탐색 시간 사이에서 타협하며, 그 결과 탐색 공간이 일부 경우에 제한되어 달성 가능한 연산자 효율이 묶인다.

이 장은 먼저 §4.2에서 엔드투엔드 GNN 학습을 가속하는 데이터·하드웨어 인지 실행 계획 프레임워크 DAHA를, 이어 §4.3에서 유연한 희소 텐서 변환으로 너비를, 다중 수준 분해로 깊이를 확장해 더 높은 연산자 실행 효율을 달성하는 프레임워크 STile을 제안한다.

4.2

데이터·하드웨어 인지 실행 계획

DATA AND HARDWARE-AWARE EXECUTION PLANNING

DAHA · MODEL LEVEL

4.2.1동기

대부분의 GNN 프레임워크가 채택한 CPU-sample-GPU-train 실행은 낮은 학습 효율을 낳는다. DistDGLv2[36]·SALIENT[16] 같은 최근 프레임워크는 배치 준비·전송·계산을 겹치는 파이프라이닝을 채택하지만, 표준적인 CPU-샘플링/GPU-학습 모델을 고수하기 때문에 성능이 이 사슬에서 가장 느린 순차 연산에 근본적으로 묶인다. 다른 하드웨어 역할을 탐구한 시스템들 — CPU 효율의 ByteGNN[35], GPU 최적화의 GNNLab[31], Kim 등의 하이브리드 집계[18] — 도 한쪽 디바이스를 저활용하거나, CPU 병목에 부딪히거나, 성긴(coarse-grained) 스케줄링에 머문다. 결정적으로 대부분의 선행 연구는 배치 전체를 단일 덩어리로 스케줄링해 연산자 수준의 세밀한 파이프라인 병렬성을 놓친다.

여기서 결정적 연구 공백이 드러난다 — 세밀한 연산자 수준에서 디바이스 활용 패턴의 조합 공간을 소진적으로 탐색하지 않았다는 것이다. 이 간과는 전역 최적 실행 계획을 발견하는 근본 최적화 문제를 풀 기회를 놓친다. DAHA는 효율 최적화의 탐색 공간을 확장해 이 공백을 메운다 — 배치 내 각 미세 연산이 가능한 어떤 디바이스에도 동적으로 배정될 수 있는 완전 하이브리드 CPU–GPU 패러다임을 가능하게 하고, 입력 데이터와 가용 하드웨어에 조건화된 최적 실행 계획을 알고리즘적으로 발견한다[29].

PROBLEM STATEMENT

입력 그래프 𝒢, GNN 모델 𝒜, 미니배치(작업) 시퀀스 ℬ = B1, …, Bn, 이기종 처리 유닛 집합 M = M1, …, Mm(CPU·GPU 등)이 주어졌을 때, ℬ에서 𝒜를 학습하는 데 필요한 계산 연산들을 M의 머신들에 매핑하는 배정과 스케줄(실행 계획)을 찾아 완료시간(makespan)을 최소화한다. 그래프 데이터의 속성과 하드웨어의 계산 프로필을 명시적으로 인지하는 메시지 패싱 GNN 학습용 실행 계획 전략의 개발이 목표다.

4.2.2데이터·하드웨어 인지 비용 모델

DAHA는 CPU/GPU에서의 신경 계산 시간과 양자 간 데이터 전송 시간을 함께 예측하는 비용 모델을 사용한다. 모델은 두 핵심 연산 — 조밀 행렬 곱(mm)과 희소–조밀 행렬 곱(spmm) — 에 초점을 둔다. GNN 레이어를 메시지 흐름 그래프(MFG)로 표현하면 핵심 요인은 각 MFGi고유 노드 수 ni간선 수 mi다. 계산 비용은 이 변수들에 대한 3차 회귀로 모델링되며, 회귀 파라미터 {βj}가 모델 아키텍처(은닉 차원 등)와 하드웨어 성능을 함께 인코딩한다.

compCost(MFGi) = β0 + β1ni + β2mi + β11ni2 + β22mi2 + β12nimi + β111ni3 + β222mi3 + β112ni2mi + β122nimi2EQ 4.1

MFG 단위 비용 모델은 배치 수준으로 자연스럽게 일반화된다 — 배치 Bj의 비용은 그 안의 MFG 비용들의 합(Eq 4.2)이다. 통신 시간은 고정 초기화 비용가변 데이터 의존 비용의 2성분으로 정식화한다. 실증 분석(Fig 4.2)은 첫 CPU–GPU 전송이 후속 전송보다 실질적으로 큰 지연을 겪음을 드러내며, 이는 통신 설정에 내재한 상당한 고정 오버헤드를 시사한다. 따라서 (1) 하드웨어 환경이 결정하고 통제된 전송 실험으로 측정되며 전체 N개 학습 배치에 상각되는 고정 비용 α와, (2) 계산 비용과 유사하게 모델링되는 가변 비용으로 분해한다 — 후자는 조밀 특징 행렬 전송(nj, mj, fn, fm)과 희소 인접행렬 전송(nj, mj)을 함께 설명한다.

commCost(Bj) = αN + Polyd(nj, mj, fn, fm) + Polys(nj, mj) = αN + Poly(nj, mj, fn, fm)EQ 4.3

계산 모델과 통신 모델이 함께, 이기종 디바이스 위에서 임의 입력 데이터에 대한 임의 미세 연산 시퀀스의 비용을 추정할 수 있게 한다. 연산별·디바이스별 회귀 파라미터를 학습함으로써, 배치 특성에 기반해 학습 단계의 파이프라인 병렬성을 최적화하는 데 필요한 예측적 기반이 마련된다.

4.2.3하이브리드 CPU–GPU 최적화

핵심 스케줄링 기준은 GPU의 기대 성능 이득이 필요한 데이터 이동을 보상한다면 GPU를 투입한다는 것이다. 이 기회를 활용하기 위해 DAHA는 세 가지 주요 하이브리드 최적화를 도입한다.

MODULE 1 · GROUP-BASED IN-TURN PIPELINING 샘플링과 학습을 교대시켜 근본 워크플로를 확립 MODULE 2 · INTRA-BATCH EPG REWRITING 실행 계획 그래프 재작성으로 탐색 공간을 준비 MODULE 3 · INTER-BATCH SCHEDULING 준비된 공간에서 최적화를 수행해 학습 속도를 향상 FIG 4.3 — GROUP-BASED IN-TURN PIPELINE (Sⁱ: i번째 에폭 샘플링, Tⁱ: i번째 에폭 학습) GPU CPU S⁰ & S¹ T⁰ S² & S³ S⁰ & S¹ S² & S³ 유휴 구간 → 신경 연산으로 충전 EPG 재작성으로 mm 분담 Time 두 단계를 분리(decouple)해 가용한 모든 CPU·GPU 자원을 먼저 다수의 연속 배치 준비에 투입하고 — 에폭 경계를 넘을 수 있음 — 이후 통합 학습 국면으로 전환한다

⟨Fig 4.1 · 4.3⟩ DAHA 아키텍처의 3대 신규 모듈과 그룹 기반 교대 파이프라인. 배치 준비 중에는 메모리 절약을 위해 서브그래프 구조만 저장하고 특징 복제를 생략한다.

① 배치 준비와 모델 학습의 그룹 기반 파이프라이닝

전통적 파이프라인은 단일 배치 스트림 안에서 배치 준비(CPU 샘플링)와 신경 계산(GPU 학습)을 교차시킨다. 반면 DAHA의 그룹 기반 교대(in-turn) 파이프라이닝은 두 단계를 분리하고, 동질적 작업을 묶음으로써 데이터·디바이스 지역성을 높여 메모리 접근과 커널 실행 오버헤드를 배치들에 상각한다 — 생산의 규모의 경제에 유비되는 원리로 배치당 평균 비용이 감소한다. 다만 과도한 그룹화는 스케줄링 복잡도를 높이고 디바이스 메모리·계산 용량을 압박해 결국 단위 비용을 올린다 — 규모의 비경제다. DAHA는 이 상반된 효과를 동적으로 균형시켜 처리량을 최적화한다.

이기종 하드웨어를 준비·학습 양쪽에 효과적으로 쓰려면 샘플링 시간과 MFG 통계의 정확한 예측이 필요하다. 그러나 샘플링 알고리즘의 확률적 성질, 겹치는 이웃의 복잡한 위상 구조, 셔플링이 유발하는 배치 구성의 불확실성 탓에 정확하고 효율적인 추정은 자명하지 않다. DAHA는 이를 적응적 셔플링점진적 스케줄링으로 극복한다.

ADAPTIVE SHUFFLING

전이 학습에서 착안한 2단 셔플링

셔플링의 영향은 선행 연구에서 거의 검토되지 않았으나, 실증 분석은 모델 효능과 학습 처리량에 대한 실질적 이중 효과를 드러낸다 — 셔플링 활성화는 테스트 정확도를 통상 1% 이상 개선해 일반화를 강화하지만, 엔드투엔드 학습 속도를 최대 10% 저하시킨다.

이에 초기 에폭에서 셔플링을 비활성화해 효율적인 "사전 학습" 국면을 형성한다 — 대상 노드가 결정적이 되므로 점진적 스케줄링을 통한 예측적 예보가 가능해진다. 정확도 이득이 감소하면(수렴 궤적을 모니터링해 엘보 지점을 자동 식별) 일반화 이득을 회수하기 위한 "미세 조정" 단계로서 셔플링을 활성화한다. 전환 후에는 수렴까지 몇 에폭만 더 필요하다. 셔플링 불확실성이 유발하는 파이프라인 저활용은 데이터 지역성이 양호한 신경 연산으로 유휴 구간을 동적으로 채워 상쇄한다.

PROGRESSIVE SCHEDULING

이동 중앙값 예보 + FPTAS 스케줄링

셔플 오프 모드에서는 샘플링 시간과 MFG 통계가 예측 가능해져 추정을 예보(forecasting) 과제로 정식화할 수 있다. 우선 샘플링 요청을 디바이스에 균등 분배해 기준 관측치를 수집한다. 이 변수들이 계절성 추세 없이 중앙값 주변에서 요동하는 안정성을 보이므로, 효율적이고 강건한 이동 중앙값(moving median) 예보를 채택한다.

초기 프로파일링 국면에서는 GPU가 CPU보다 샘플링을 일찍 끝내므로, 활용률 유지를 위해 GPU 유휴 시간을 적절한 신경 연산으로 채운다. 이후 라운드에서는 정제된 추정치로 CPU·GPU 워커에 샘플링 워크로드를 스케줄링한다 — n개 배치의 예측 처리 시간이 주어지고 GPU 샘플링이 인자 s만큼 균일하게 빠를 때 완료시간을 최소화하는 머신 스케줄링 문제로 형식화되며, 이는 O(n²) 복잡도의 FPTAS를 허용해 최적해의 (1 + ε) 범위를 보장한다[13]. 완료시간 최소화는 본질적으로 균형 잡힌 워크로드와 높은 활용률을 촉진하며, 셔플 오프에서 추정치가 정적이므로 스케줄링 문제는 한 번만 풀어 이후 라운드에 재사용한다.

② 배치 내 실행 계획 그래프(EPG) 재작성 규칙

파이프라인의 분리 설계로 배치 통계 전체를 사전에 확보할 수 있어, DAHA는 비용 모델(Eq 4.1–4.3)로 매 에폭 두 단위(배치 내·배치 간)의 정밀한 실행 계획을 수립한다. 기존 접근이 CPU를 그래프 연산에, GPU를 신경 계산에 묶는 경직된 하드웨어 이분법을 강요하는 것과 달리, DAHA는 양쪽 모두를 임의 연산 수행이 가능한 범용 프로세서로 취급한다. 이 관점은 GNN 학습을 그 핵심 선형대수 성분들로 재구성한다 — 전형적 순전파는 Zl+1 = A HlWl, Hl+1 = σ(Zl+1) (Eq 4.4)로 표현되며, A는 희소 인접행렬, Hl는 조밀 노드 임베딩, Wl는 조밀 가중치 행렬이다.

스케줄링을 추론하기 위해 이 계산을 실행 계획 그래프(EPG) — 노드가 미세 연산(데이터 전송, spmm, mm)이고 간선이 데이터 의존을 나타내는 방향 비순환 그래프 — 로 추상화한다.

(a) EPG — PURE GPU A (input)H (input)W (input) A to GPUH to GPUW to GPU T = AH (GPU)Z = TW (GPU) (b) EPG — HYBRIDPU (사전 변환 pre-transformation) A (input)H (input)W (input) T = HW (CPU) A to GPUT to GPU Z = AT (GPU) (c) DEVICE TIMELINE — PURE GPU GPU PCIe CPU A H W T=AH Z=TW 전면 유휴 — 배치 내 디바이스 활용 저조 Time PCIe 대역폭 경합으로 A·H 전송이 우선되고, W 전송만 T = AH와 겹칠 수 있어 파이프라인 공백이 크다 (d) DEVICE TIMELINE — HYBRIDPU GPU PCIe CPU A T Z=AT T=HW Time 조밀 곱 HW를 CPU로 이동 → 전송과 겹치고, 결과 T만 보내므로 통신량도 감소 → 완료시간 단축

⟨Fig 4.4⟩ 순수 GPU 실행과 HybridPU 실행의 EPG 및 디바이스 타임라인 비교.

EPG 재작성 모듈 HybridPU는 병렬성을 높이는 하이브리드 CPU–GPU 실행 계획을 생성한다. 핵심 규칙인 사전 변환(pre-transformation)은 조밀 곱 HW를 CPU로 옮겨 데이터 전송과 겹치게 하고 결과만 전송해 통신량을 줄인다 — 추론과 순전파에 매우 효과적이다. 대안인 사전 집계(pre-aggregation) 규칙은 희소 집계 AH를 CPU에서 수행한다 — 단일 배치에는 보통 더 느리지만, 다중 배치 파이프라인에서 유휴 CPU 자원을 더 잘 활용할 수 있다. DAHA는 비용 모델과 배치 통계로 주어진 맥락에 가장 유익한 규칙을 자동 선택하며, 이 최적화는 풀그래프 학습에도 적용 가능하다.

③ 배치 간 스케줄링 최적화

배치 간 스케줄링 문제는 PCIe 대역폭을 공유하는 CPU·GPU 워커에 분산된, 의존 작업들의 DAG인 다수 배치의 연산들을 연산별 비용 추정치를 이용해 스케줄링하여 전체 완료시간을 최소화하는 것이다. 이 정식화는 배치 내 EPG 재작성을 포섭한다 — 의존성을 위배하지 않는 한 연산 순서를 바꿀 수 있어 스케줄러가 배치 내 최적화를 직접 계승한다. 준비된 연산을 가용 GPU에 동적 디스패치해 GPU 유휴를 더 줄이고, 유계 신선도(bounded staleness)로 파이프라인 기회를 늘린다.

이 문제는 NP-hard인 유연 잡숍 문제(FJSP)의 변형이다[2]. FJSP는 가장 어려운 조합 문제 중 하나로 악명 높고 기존 근사법은 대개 강한 성능 한계를 갖지 못하며[3, 11], 고려해야 할 배치 내 실행 계획의 방대한 공간이 난도를 더한다. DAHA는 기댓값 최대화(EM)와 그룹화 원리에서 착안한 휴리스틱 이중 수준(bi-level) 최적화로 대응한다[9] — 유한한 하드웨어 자원과 작업 전환 오버헤드 탓에 긴밀히 교차 실행 가능한 배치 수가 제한적이라는 통찰에서, 배치를 가용 워커 수로 결정되는 크기의 그룹으로 분할해 탐색 공간을 크게 줄인다.

하위 수준은 주어진 그룹화 𝒢 = {𝒢i}에서 배치 내 전략의 유효한 EPG 재작성 규칙을 활용해 각 그룹의 실행 계획을 최적화한다. 상위 수준은 각 그룹 최적 계획의 파이프라인 효율을 평가하고, 비효율적 그룹의 배치를 재그룹화해 그룹화 자체를 정제한다 — 새 그룹은 하위 수준으로 되돌려 재최적화된다. 그룹화 정제와 그룹 내 최적화 사이의 이 반복적·피드백 주도 과정이 EM 알고리즘을 닮는다.

ALGORITHM 4 — BI-LEVEL EM-BASED SCHEDULING

Require: M = {M₁,…,M_m} 처리 유닛; B = {B₁,…,B_n} 배치; {R₁,…,R_r} EPG 재작성 규칙;
         compCost_Mi(·), commCost(·) 비용 모델; μ* ∈ (0,1) 그룹화 품질 파라미터;
         α 품질 증가율; β 그룹 최대 크기; τ 최대 반복
Ensure: 처리 유닛 위 배치들의 실행 계획


1 B를 분할하는 그룹화 G = {G_i}를 무작위로 초기화
2 f ← 길이 |G|의 0 리스트;  μ, iterCount ← 0
3 while iterCount < τ and μ < μ* do
4   μ ← μ + α;  iterCount ← iterCount + 1
5   for all G_i ∈ G do
6     f[i] ← 0
7     후보 재작성 규칙 {R₁,…,R_r}을 G_i에 적용해 실행 가능 계획들을 열거
8     비용 모델로 각 계획의 완료시간을 추정
9     완료시간을 최소화하는 계획 P_i와 최소 완료시간 C_i를 결정
10   if C_i > (1 − μ)·Σ_{B_j ∈ G_i} cost_{P_i}(B_j) then f[i] ← 1  // 비효율 그룹 표시
11  end for
12  ΔB ← {B_j : B_j ∈ G_i and f[i] = 1}
13  for all B_j ∈ ΔB do  k ← argmin_i cost_{R_i}(B_j);  y_j ← compCost_{R_k}(B_j) / commCost_{R_k}(B_j)
14  ΔG* ← argmin_{ΔG} max_{ΔG_i} |log(Σ_{B_j ∈ ΔG_i} y_j)|  s.t. |ΔG_i| ≤ β ∀ΔG_i
15  G ← {G_i : f[i] = 0} ∪ ΔG*
16 end while
17 각 G_i에 대해 완료시간 최소 실행 계획 P_i를 결정;  return G = {G_i}, {P_i}

복잡도. 상위 수준의 반복당 복잡도는 정렬과 효율적 이웃 탐색을 포함하는 그룹화 갱신이 지배해 O(n log n)이다. 하위 수준은 그룹 크기 β가 가용 워커 수로 유계이므로 O(β! · n)에 묶인다. 전형적 값 β < 10, n < 100에서 총 반복당 복잡도 O(n log n + β! · n)은 계산적으로 관리 가능하다.

4.2.4실험

설정. 두 하드웨어 구성에서 수행한다 — 기본 머신 M1(Intel i9-12900KF, DDR5 32 GB, RTX 3080 Ti 12 GB, PyTorch 1.12 · DGL 0.9 · CUDA 11.6)과, 하드웨어 적응성 평가용 M2(Intel Xeon Gold 6240, RTX 2080 Ti, CUDA 10.1)다. 모델은 세 가지 널리 쓰이는 메시지 패싱 아키텍처 — 풀그래프로 학습하는 GCN[19], 노드 단위 미니배치 샘플링의 GraphSAGE[12], 서브그래프 수준 샘플링의 GraphSAINT[33] — 이며 모두 100 에폭 학습한다(미니배치 배치 크기 8192, GraphSAINT 노드 샘플러 예산 16384). 베이스라인은 PyTorch[22], DGL[26](고전적 CPU 샘플링 + GPU 학습), DGL+(순수 GPU 변형), ByteGNN[35](CPU 전용 설계이므로 공정성을 위해 GPU에서 DGL+와 짝지음), SALIENT[16]다. 모든 베이스라인에서 일관성을 위해 DGL 샘플러를 사용한다.

데이터셋유형노드간선특징클래스VolG (MB)VolF (MB)
Cora인용 네트워크2,70810,5561,43370.40314.803
Citeseer인용 네트워크3,3279,1043,70360.35046.997
Pubmed인용 네트워크19,71788,64850033.38238.000
CS공저 네트워크18,333163,7886,805153.125476.000
Physics공저 네트워크34,493495,9248,41559.4591,108.000
ogbn-arxiv인용 네트워크169,3431,166,2431284044.89882.687
ogbn-products공동구매 그래프2,449,029247,436,304100474,720.000934.230
Reddit소셜 그래프232,965229,231,784602414,372.450534.992

⟨Table 4.1⟩ 데이터셋 통계. VolG·VolF는 각각 희소 인접행렬과 조밀 특징 행렬의 크기(MB). 규모·밀도·특징 차원이 다양해 DAHA의 데이터 인지 최적화 역량을 검증한다. GCN(풀그래프)은 소형 데이터셋(Cora, Citeseer, Pubmed, CS, Physics)에서, GraphSAGE·GraphSAINT(미니배치)는 대형 데이터셋(Arxiv, Products, Reddit)에서 시험한다.

전체 성능

FULL-GRAPH GCN · FIG 4.5

48.4–59.1% 엔드투엔드 가속

다섯 개 데이터셋 전반에서 DAHA가 PyTorch를 일관되게 능가하며, 엔드투엔드 가속은 48.4~59.1% 범위다. 풀그래프 GCN 학습은 샘플링 오버헤드를 배제하므로, 이 이득은 순수하게 DAHA의 실행 계획 최적화(EPG 재작성을 통한 사전 변환 등)에 귀속된다 — 유휴 하드웨어를 활용한 하이브리드 CPU–GPU 계산이 효과적임을 보여준다. 규모·밀도·특징 차원이 다양한 데이터셋에서 일관되게 높은 가속을 보인 것은 효율적·데이터 인지적 실행 계획을 생성하는 적응성을 확인한다.

MINI-BATCH · FIG 4.6

DGL 대비 최대 81%, SALIENT 대비 73%

Arxiv·Products·Reddit에서 GraphSAGE·GraphSAINT 모두에 유의미하고 일관된 가속을 달성해 DGL보다 최대 81% 빠르며, 파이프라인 시스템 SALIENT보다도 최대 73% 앞선다. 개선은 이중 이점 설계에서 나온다 — 첫째 그룹 기반 파이프라인이 실효 에폭당 샘플링 시간을 줄이고, 둘째 배치 간 계획이 더 깊은 최적화 기회를 활용해 계산을 빠르게 한다. ByteGNN이 일부 시나리오에서 경쟁력을 보이나 DAHA의 강점인 조율된 배치 간 최적화가 없다. 모든 워크로드에서 DAHA가 일관되게 가장 빠른 엔드투엔드 시간을 달성한다.

GraphSAGE 정확도 (%)Shuffle-on (표준)Shuffle-offAdaptive shuffle (DAHA)
Arxiv69.5868.1169.21
Products76.7676.4076.50
Reddit96.2996.2296.27

⟨Table 4.2⟩ 셔플링 모드별 테스트 정확도. Shuffle-on이 최고 정확도를 내고 shuffle-off는 일반화를 훼손해 Arxiv에서 최대 1.5%p 하락한다. DAHA의 적응 전략은 shuffle-off로 사전 학습한 뒤 셔플링을 켜 미세 조정함으로써 shuffle-on에 준하는 정확도를 달성하고 shuffle-off를 실질적으로 앞선다.

분해 분석 (Breakdown)

성능 이득의 출처를 규명하기 위해 3대 구성요소를 분리한 네 변형을 평가한다 — "intra"(DGL CPU 샘플러 + 배치 내 최적화), "inter"(DGL CPU 샘플러 + 배치 내·간 최적화), "H+intra"(그룹 기반 교대 파이프라이닝 + 배치 내 최적화), "H+inter"(파이프라이닝 + 배치 내·간 최적화, DAHA 기본값). Table 4.3과 Fig 4.7의 결과는 세 가지를 보여준다 — (1) 배치 내 EPG 재작성이 DGL 대비 학습을 가속하고(intra > DGL), (2) 배치 간 스케줄링이 배치 내 최적화를 개선하며(inter > intra), (3) 그룹 기반 교대 파이프라이닝이 효율을 한층 높인다(H+intra > intra, H+inter > inter).

데이터셋 · 모델sample
(DGL 샘플러)
intraTinterTDGLDGL+ByteGNNSALIENTH+inter
(DAHA)
Arxiv · GraphSAGE4.401.611.1016.3214.267.687.603.57
Arxiv · GraphSAINT10.243.153.1535.0020.1114.0313.715.35
Products · GraphSAGE67.388.145.5783.6052.2621.6618.006.71
Products · GraphSAINT551.5985.8140.81702.743024.34846.21637.40507.36
Reddit · GraphSAGE7.453.478.8252.2634.4136.3716.9612.87
Reddit · GraphSAINT10.387.6383.6020.9518.5974.8318.39

⟨Table 4.3 발췌⟩ 100 에폭 기준 기록(초). "sample"은 기본 DGL 샘플러의 샘플링 시간, "intraT"·"interT"는 DAHA의 배치 내·배치 간 최적화를 쓴 계산 시간(샘플링 단계 제외, 학습 단계만). "DGL"은 CPU-샘플-GPU-학습, "DGL+"는 순수 GPU 시간. 원표는 intra/inter/H+intra/H+inter 네 변형을 모두 보고하며, 여기서는 기본 변형(H+inter)만 표시했다.

비용 모델의 효과

비용 모델의 효율과 정확도를 검증한다(Table 4.4–4.5). Pubmed 서브그래프 10개로 적합된 모델이 데이터 전송을 포함해 데이터셋·디바이스 전반의 연산 비용을 정확히 예측한다. 특히 mm보다 spmm에서 GPU 가속 폭이 더 크다는 사실을 올바르게 포착해 사전 변환 전략의 타당성을 뒷받침한다. 이 머신당 일회성 캘리브레이션은 빠르고(데이터 수집 M1 0.0205 s / M2 0.2793 s, 회귀 M1 37.86 s / M2 64.21 s), 런타임 오버헤드가 무시할 만하며(100회 예측당 0.005 s) 일반화도 양호해 DAHA의 데이터·하드웨어 인지성을 입증한다.

M1 · 연산 (100 에폭, 초)PubmedCSPhysics
실측예측실측예측실측예측
spmm · CPU5.80005.739769.251168.8993243.9285235.2394
spmm · GPU0.50000.49946.20015.583617.302717.6340
mm · CPU0.30010.30611.00000.90292.49992.4201
mm · GPU0.10000.09450.10010.09880.20000.2044
데이터 전송 · PCIe0.60000.54346.01105.920013.831413.6227

⟨Table 4.5 발췌, M1⟩ 실측 대비 예측 비용. 데이터 전송은 희소 인접행렬과 조밀 특징 행렬 양쪽을 포함한다. 원표는 M2 결과도 함께 보고한다.

4.3

희소 연산자를 위한 하이브리드 희소 포맷

HYBRID SPARSE FORMATS FOR SPARSE OPERATORS

STile · OPERATOR LEVEL

4.3.1동기 — 포맷의 트레이드오프와 탐색 공간의 한계

기존 희소 포맷들은 서로 다른 희소 패턴에서 상반된 장단점을 보인다.

FIG 4.8 — 대표 희소 포맷과 SpMM 구현 특성 CSR 비영 원소를 행 단위로 압축 저장 불규칙 행 길이 − 스레드 간 워크로드 불균형 + 0을 패딩하지 않아 메모리 최소 cuSPARSE의 기본 포맷 ELL 각 행에 0을 패딩해 정규 행렬로 K로 통일 + ptr 제거·제어 흐름 분기 소멸 + 열 우선 저장 시 메모리 병합 − 패딩(회색) 계산 낭비 → 행당 비영 수 편차가 작을 때 적합 BSR 비영 블록(예: 2×2) 단위 저장 블록 단위 열 인덱스 + 구조 정보 메모리 절감·벡터화 + GPU Tensor Core 활용 가능 − 패딩 계산 부담 → 조밀 부분행렬을 가진 행렬에 적합

⟨Fig 4.8⟩ 대표 희소 포맷과 대응 SpMM 구현. 단일 포맷이 모든 희소 텐서에 적합할 수 없고, 하나의 텐서가 영역별로 다른 패턴을 가지면 포맷 결합이 필요하다.

SpMM에서는 각 GPU 스레드가 출력의 한 행을 계산하게 하는 것이 일반적인데, CSR의 압축 후 불규칙 행 길이는 스레드 간 워크로드 불균형을 일으켜 연산자 효율을 훼손한다. ELL은 각 행에 0을 패딩해 정규 행렬을 반환함으로써 CSR의 ptr 배열을 제거하고 유효 열 인덱스 획득 과정을 단순화하며, 스레드의 제어 흐름 분기를 없애고 열 우선 저장에서 메모리 병합(coalescing)을 가능하게 한다. BSR은 비영 원소 대신 블록의 열 인덱스를 저장해 희소 구조 정보의 메모리 사용을 줄이고 벡터화·하드웨어 인트린식[46]의 기회를 제공한다 — SpMM에서 스레드 블록 하나가 출력 행 집합을 계산하게 해 강력한 GPU Tensor Core에서 실행할 수 있다. 다만 패딩이 가져오는 추가 계산 부담은 ELL·BSR 모두에게 심각한 문제일 수 있다.

두 갈래 분해 방법과 그 한계

다양한 희소 패턴 대응을 위해 사람들은 하이브리드 포맷을 시도한다 — 분해된 서브텐서가 교집합을 가질 수 있는 집합 커버 기반 분해[78]와, 교집합이 없는 분할 기반 분해[48, 55, 65, 66, 76]다. 아래 예시들은 블록 형상 1×1, 2×2, 4×4의 비용을 각각 2, 4, 15로 가정한다(하위 작업 1개당 1개 블록, 단일 계산 유닛).

FIG 4.9 · 4.10 — 분해 전략별 총비용 비교 (동일 희소 행렬, 비영 원소 10개) ① 1×1 블록만 비용 20 = 10 × 2 Fig 4.9a — 집합 커버, 단일 형상 ② 2×2 블록만 비용 28 = 7 × 4 Fig 4.9c — 오히려 악화 ③ 형상 혼합 비용 16 = 4 + 6 × 2 Fig 4.9b — 하이브리드 블록 형상 ④ + 행·열 재정렬 비용 12 = 2×4 + 2×2 Fig 4.9d — 탐색 너비 확장 ⑤ 분할 + BSR 비용 12 Fig 4.10a — 4분할 후 각 부분 재정렬·BSR 저장 ⑥ 분할 + ELL 비용 12 = 6 × 2 Fig 4.10b — 2분할 ELL, 0 두 개 패딩이 낭비 ⑦ 다중 수준 분해 비용 11 = 2×4 + 3 Fig 4.10c — 1수준은 블록(0–3, 6–9), 2수준은 잔여(4, 5)에 ELL → 탐색 깊이 확장 비용 축 (낮을수록 우수) ※ 다중 수준 포맷 선택을 고려하는 것만으로 실험상 일부 사례에서 3.6× 연산자 효율 개선이 확인된다

⟨Fig 4.9 · 4.10⟩ 동일 희소 행렬에 대한 분해 전략별 총비용. 좋은 분해를 찾으려면 탐색 공간이 충분히 커야 하며, 너비(행렬 변환과 다양한 포맷)와 깊이(다중 수준 분해) 양방향의 확장이 필요하다.

집합 커버 기반 분해는 원 텐서의 모든 비영 원소가 덮이도록 최적의 블록 컬렉션을 찾는다. 이 부류의 기존 연구[78]는 블록 포맷만 고려해 블록 전체(0과 비영 모두)를 메모리에 저장하며, 국소 희소 패턴에 대한 다른 포맷이나 행렬 행·열 재정렬 같은 변환을 수행하지 않아 분해 해의 탐색 공간이 제한된다. 분할 기반 분해는 국소 희소 패턴에 맞는 포맷을 찾을 수 있도록 행렬을 여러 부분으로 분할하며, 패턴을 뚜렷하게 하려고 행당 비영 수로 행을 재정렬하는 등의 변환을 적용한다[48, 55, 76]. 그러나 서브행렬 안에 선택된 포맷에 맞지 않는 비영 원소가 있을 수 있어 — 그런 원소를 별도 포맷으로 저장하는 편이 낫다 — 탐색 공간이 역시 제한된다.

따라서 두 가지 주요 도전이 남는다 — (1) 너비와 깊이가 확장된 큰 탐색 공간을 어떻게 구성하는가, (2) 그 큰 공간에서 어떻게 효율적으로 탐색해 좋은 하이브리드 포맷을 찾는가.

형식적 정의와 문제의 난도

DEFINITION 4.1 — 희소 타일 (SPARSE TILE)

희소 타일 t는 지정된 희소 포맷을 갖는 희소 텐서의 서브텐서로, t = (E, α)로 표기한다. Et가 덮는 비영 원소 집합, α는 E를 저장하는 희소 포맷이다.

DEFINITION 4.2 — 유효 타일 선택 (VALID TILE SELECTION)

희소 텐서 T에 대한 유효 타일 선택 S는, T의 모든 비영 원소가 S의 적어도 하나의 타일에 의해 덮이도록 하는 희소 타일 집합이다.

DEFINITION 4.3 · 4.4 — 하위 작업과 작업 분할

희소 연산자 O와 그 반복 공간에서 O가 건너뛸 수 없는 점 집합 U가 주어졌을 때, 하위 작업 xO의 반복 공간의 부분 공간을 순회하며 U의 부분집합 u를 덮는다. 작업 분할 X는 ⋃xiX ui = U를 만족하는 하위 작업 집합이다.

DEFINITION 4.5 · 4.6 — 작업 분할 방식과 그 비용

작업 분할 방식 p = (iI, iJ, iK, …)는 O의 각 조밀 루프를 분할하는 방식이다. GPU에서 하위 작업들은 병렬 동작하는 다수 SM에 배정되므로, 총 실행시간은 SM들의 최대 실행시간이다 — 배정 f 아래 costf(X) = maxi ΣxXi cost(x)이고, cost(X) = minf costf(X)로 정의한다(GPU가 최선의 스케줄을 쓴다고 가정).

DEFINITION 4.7 — 다중 수준 희소 타일 (MULTI-LEVEL SPARSE TILE)

희소 입력 T0를 변환해 가능한 1수준 희소 타일 집합 ST1을 얻는다. 그 부분집합 S1을 선택하면 T0의 잔여 비영 원소로 이루어진 새 텐서 T1과, 이를 변환한 2수준 타일 집합 ST2를 얻는다. 이를 반복해 i번째 라운드에서 SiSTi를 선택하면 TiSTi+1을 얻으며, S = ⋃1N SiT0의 유효 타일 선택이 되는 라운드 N에서 종료한다.

DEFINITION 4.8 · THEOREM 4.1 — MSFD 문제와 NP-hardness

MSFD(다중 수준 희소 포맷 분해) 문제: 희소 입력 T0와 작업 분할 방식 집합 P가 주어졌을 때, Definition 4.7의 방식으로 수준별 타일을 선택해 유효 타일 선택 S를 얻고 pP를 골라, 대응 작업 분할 X의 비용 cost(X)를 최소화한다.

Theorem 4.1. MSFD 문제는 NP-hard다. 증명 스케치 — 1수준 타일만 고려하고 GPU가 SM 하나만 갖는 단순화 버전에서는 가능한 하위 작업 집합이 고정되며, 최소 비용 작업 분할을 찾는 것은 NP-hard인 가중 집합 커버 문제를 푸는 것과 동등하다. 따라서 MSFD 문제도 NP-hard다.

4.3.2자동 하이브리드 희소 포맷 탐색 프레임워크

STile은 MSFD 문제를 다음 흐름으로 해결한다 — 희소 연산자 O와 입력 텐서가 주어지면 (1) 가능한 희소 타일과 작업 분할 방식의 탐색 공간을 설계해 하위 작업의 탐색 공간을 결정하고, (2) 비용 모델로 하위 작업의 비용을 추정하며, (3) 이에 기반해 철회형 그리디(greedy-with-withdraw) 알고리즘으로 O의 작업 분할을 얻는다.

탐색 공간 — 6개 변환 프리미티브와 3개 기본 포맷

No.프리미티브파라미터설명
1Reorder rows/columns행·열당 비영 원소 수로 행렬의 행·열을 재정렬
2Divide rows/columns크기 i각 부분이 i개 행·열을 갖도록 행렬을 행·열 방향으로 분할
3Squeeze비영 원소만 메모리에 저장
4Split rows크기 jsqueeze 후 각 부분이 j개 비영 원소를 갖도록 각 행을 분할
5Zero padding행·열 방향으로 0을 패딩
6Flatten원소들을 1차원 배열에 저장

⟨Table 4.7⟩ 기존 연구들에서 정리한 변환 프리미티브. 이 조합으로 알려진 포맷들이 재현된다 — ELL = 3 → 5(각 행), BSR = 2(행, i=2) → 2(열, i=2), condense[72] = 2(행, i=16) → 1(열) → 2(열, i=16), hyb[76] = 2(열) → 1(행) → 3 → 4(j=2k) → 5(각 행) → 2(행, i=2,4,8,…), 1D[49, 77] = 3 → 6 → 4(j=2k) → 2(행, i=1).

희소 타일에는 세 기본 포맷을 고려한다 — "Squeeze"를 적용하지 않아 0이 유지된 타일에는 블록 포맷, "flatten"을 사용한 타일(이때 squeeze도 필수이므로 비영 원소가 연속 저장됨)에는 1D 포맷, 그 외에는 항상 "Squeeze" 후 "Zero padding"을 적용해 ELL 포맷을 쓴다. 블록 포맷 타일의 계산은 GPU Tensor Core에서 실행하므로 서브텐서가 wmma 같은 하드웨어 인트린식과 정합하는 특정 형상 — (16, 16), (8, 16) 등 — 이어야 하고, 그 밖의 포맷은 CUDA Core에서 실행한다. ELL 포맷 타일에는 유지 원소(비영 + 0) 총수에 대한 제약[76]이 있어 이를 만족하는 타일만 공간에 허용한다. 작업 분할 시에는 희소 연산자 계산의 각 조밀 루프(어떤 점도 건너뛰지 않는 루프)를 파라미터로 통제되는 크기로 균등 분할한다. 분할된 조밀 루프와 후보 희소 타일이 함께 후보 하위 작업을 결정한다 — 예컨대 SpMM의 조밀 루프 J가 길이 64이고 두 부분으로 분할되면, 하위 작업 공간은 {E1, …, Em} × {J1, J2}에서 나온다.

비용 모델 — 루프라인과 원자적 연산 보정

세 포맷의 하위 작업 비용을 각기 다르게 추정한다. 블록 포맷 하위 작업은 반복 공간에서 어떤 점도 건너뛰지 않으므로 반복 공간 형상이 같으면 비용도 같다 — 탐색 공간에 포함된 모든 형상을 열거해 사전 측정한 비용 표(cost table)를 쓴다. ELL·1D 포맷 하위 작업은 다음으로 추정한다.

cost(x) = g(x) · Atomic(x),   g(x) = a·R(x) + b,   R(x) = FLOPsmin(AI, PEAK)COST MODEL

g(x)는 결과를 GPU 전역 메모리에 되쓸 때 원자적 연산(atomicAdd() 등)을 쓰지 않고 x를 마치는 지연이며, R(x)는 원자적 연산이 없을 때의 루프라인 모델[74] 결과다 — AI는 x의 산술 강도(FLOPs / 총 데이터 이동량 Bytes), PEAK는 GPU 최대 성능(FLOP/s) 대 최대 대역폭(Byte/s)의 비다. 서로 다른 GPU 스레드가 같은 주소의 값을 함께 계산할 때 원자적 연산이 필요한데(예: A를 1×2 블록으로 분할해 A1,1은 블록 포맷, A1,2는 ELL 포맷으로 저장하면 두 스레드 집합이 모두 C에 쓴다), 추가 메모리 연산과 충돌 연산의 직렬화 탓에 여분 오버헤드가 발생한다. 원자적 연산이 없으면 Atomic(x) = 1이며(1D 포맷은 SDDMM에 주로 쓰이고 비영 출력 점이 독립·병렬 계산되므로 통상 1), 있으면 Atomic(x) = c·Ratomic(x)/R(x) + d다. 상수 a, b, c, d는 사전 수집한 측정 결과에 선형 함수를 적합해 얻는다(Algorithm 5).

ALGORITHM 5 — GET COST MODEL COEFFICIENTS

Ensure: 비용 모델 계수 a, b, c, d
1 두 하위 작업 집합 {x₁,…,x_m}, {x′₁,…,x′_m}을 샘플링 // x_i는 원자적 연산 없음, x′_i는 있음 (그 외 동일)
2 PEAK ← (GPU peak FLOPS) / (GPU peak Byte/s)
3 C, C_atomic, R, R_atomic ← new List × 4
4 for i = 1,…,m do
5   c₁ ← x_i의 측정 지연;  c₂ ← x′_i의 측정 지연
6   C.append(c₁);  C_atomic.append(c₂)
7   R.append( FLOPs(x_i) / min(FLOPs(x_i)/Bytes(x_i), PEAK) )
8   R_atomic.append( FLOPs(x′_i) / min(FLOPs(x′_i)/Bytes_atomic(x′_i), PEAK) )
9 end for
10 a, b ← LeastSquaresPolynomialFit(R, C)
11 c, d ← LeastSquaresPolynomialFit(R_atomic / R, C_atomic / C)

철회형 그리디 (Greedy with Withdraw)

기본 흐름은 이렇다 — 1수준 타일 기반 하위 작업 공간 Y를 얻고, U′를 U로 초기화한 뒤 반복적으로 하위 작업을 선택해 U′의 모든 점을 덮는다. 각 반복에서 cost(xi)를 |uiU′|(xi가 덮을 수 있는 미커버 점 수)로 나눈 평균 비용을 계산해 최소인 것을 선택하고 U′ ← U′ − ui로 갱신한다. 다중 수준을 허용하므로, 선택 후 잔여 비영 원소를 재조직해 다음 수준 타일과 새 하위 작업 공간을 생성하고 그중에서 다음을 선택한다. 여기에 두 기법을 더한다.

WITHDRAW

근시안적 그리디의 교정

그리디는 때로 근시안적이다(Fig 4.13). 이미 x1, x2를 선택했고 현재 최선이 평균 비용 1.2의 x3라면 총비용이 8 + 3 + 6 = 17이 되지만, x1, x2철회하고 x4를 택하면 12로 더 좋다. 이에 집합 커버의 철회 아이디어[53]를 도입해, 선택된 하위 작업 집합 Zjxj로 대체하는 평균 비용을 [cost(xj) − ΣxkZjcost(xk)] / |ujU′|로 정의한다. 예시에서 x4x1, x2를 대체하는 평균 비용은 0.2이므로 x3 대신 x4가 선택된다.

대체 후보는 블록 포맷의 비원자적 하위 작업으로만 한정한다 — 이 문제는 희소 텐서의 불균형한 비영 분포에서 비롯되고 압축 없이 얻어지는 블록 포맷이 특히 겪기 쉬우며, 원자적 연산은 비싸므로 비원자적 작업으로 원자적 작업을 대체하는 데 더 관심이 있기 때문이다.

LOCAL SEARCH

선택 과정의 가속

선택 속도를 높이기 위해 하위 작업 xi를 선택할 때마다 평균 비용이 xir배 미만으로 가까운 다른 하위 작업 xj도 함께 선택한다(r은 사용자 제공 파라미터, 기본 120%).

복잡도. 반복 횟수는 O(|X|)이고 |X| = O(|U|)이며, 각 반복에서 후보 하위 작업 열거와 평균 비용 비교, U′ 갱신(O(|U|))이 필요하다. 후보 수는 |Y| = O(∏i=1di)(ℓi는 반복 공간 i번째 차원 길이)이므로 총 시간 복잡도는 O(|U|(∏ii + |U|)), 메모리 복잡도는 O(|U| + ∏ii)다(하위 작업의 uU에서 얻을 수 있어 별도 저장 불필요).

THEOREM 4.2 — 근사비 (단순화 문제)

1수준 희소 타일과 그 하위 작업만 고려하는 단순화 문제에 대해 Algorithm 6의 근사비는 rβ ln(|U|)이다. U는 연산자가 정확한 출력을 얻기 위해 건너뛸 수 없는 점 집합, r은 국소 탐색 비율 파라미터이며 대부분의 경우 β < 2다.

증명 요지 — cost(xi)/|ui| ≤ ALG/|U|에서 cost(xi) ≤ (|ui|/|U|)ALG를 얻고, xi를 마지막에 실행하면 그 시작 시각이 Σxjxicost(xj)/n 이하이므로 cost(X) ≤ (1/n + |ui|/|U|)ALG (Eq 4.5)다. 한편 Uk번째 점이 처음 덮이는 반복에서 |U′| ≥ |U| − k + 1이므로 ALG = Σkcost(ek) ≤ OPTSUM·r ln(|U|) ≤ OPT·r ln(|U|)를 얻는다. 결합하면 cost(X) ≤ (1 + n|ui|/|U|)r ln(|U|)·cost(X*)이며, 탐색 공간의 하위 작업이 덮는 U의 부분집합은 대개 U에 비해 작아 n|ui|/|U| < 1이 된다.

4.3.3구현

블록·ELL·1D 포맷 하위 작업별 템플릿을 준비하고, 서로 다른 하위 작업의 코드를 수평 융합(horizontal fusion)[59]으로 단일 GPU 커널에 합친다 — 융합 커널은 분기문으로 두 하위 작업의 명령을 결합하고, 분기 조건이 현재 스레드 블록 ID를 검사해 해당 하위 작업의 명령 경로로 실행을 디스패치한다. 융합 커널의 분기 수는 템플릿 수(실험에서 32 이하)로 제한된다. 템플릿은 스레드 수, 벡터화 로드/스토어 크기, 루프 명시적 언롤 여부 같은 구현 선택에 대해 파라미터화되어 있어, 파라미터를 열거해 커널 지연 기준 최선 구현을 선택한다(파라미터 공간이 100 미만으로 매우 작아 열거 오버헤드가 낮다).

비용 모델 구축에서도 하위 작업 비용은 템플릿 기반 코드를 실행해 측정한다. GPU 코어가 포화된 상태의 실행시간을 수집해야 SM 실행시간을 하위 작업 비용의 합으로 추정하는 것이 정확하므로, 주어진 하위 작업으로 워크로드를 충분히 많이 분할할 수 있는 가짜(fake) 희소 연산자를 만들고 총 지연을 (하위 작업 수 / SM 수)로 나눠 비용으로 삼는다. 다만 희소 연산자가 너무 희소해 선택된 작업 분할의 하위 작업 수가 부족하면 이 비용 모델 기반 성능이 충분하지 않을 수 있다. 따라서 그리디가 찾은 분할 외에 단일 포맷만 쓰는 최선 분할(블록만, ELL만, 1D만)도 각각 탐색해, 네 후보의 지연을 비교해 최선을 골라 최종 코드를 생성한다.

4.3.4실험

실험은 세 질문에 답한다 — (1) STile이 연산자 효율에서 경쟁자를 능가하는가, (2) 그리디 알고리즘의 기법들이 유용한가, (3) 다중 수준 분해와 둘 이상의 기본 포맷이 필요한가.

설정. SparseTIR[76] 기반으로 Python 3.9로 구현했고 코드는 GitHub에 공개되어 있다. 장비는 AMD EPYC 7413 24-Core × 2, NVIDIA A100-SXM4-80GB, RAM 1006 GB, Ubuntu 20.04.5, CUDA 11.7이며 데이터 타입은 float16이다. 경쟁자는 다섯 — cuSPARSE[47](CSR 커널), DGL[71](SDDMM은 FeatGraph[56] 기반), VectorSparse[42](1D-벡터 포맷 + Tensor Core), Triton[70](블록 희소 구현), SparseTIR[76](합성 가능 포맷·스케줄 변환의 최신 기법)이며, STile의 r은 1.2로 설정한다. 앞의 네 경쟁자는 단일 포맷 연산자만 지원하고 SparseTIR만 하이브리드 포맷을 지원한다. Triton은 SparseTIR 실험 관행에 따라 블록 프루닝 행렬과 희소 어텐션 행렬에서만 시험한다.

희소 행렬범주MN#edges
Cora[69]① GNN 인접행렬
(규모·밀도·패턴 다양)
2,7082,70810,556
Citeseer[69]3,3273,3279,228
Pubmed[69]19,71719,71788,651
ppi[51]44,90644,9061,271,274
arxiv[67]169,343169,3431,166,243
NotreDame (ND)[39]325,729325,7291,497,134
Proteins[67]132,534132,53439,561,252
Reddit[51]232,965232,965114,615,892
Unstructured② Transformer 가중치의 비구조적 프루닝 (PruneBERT 72개)768–3072768–30722,950–418,402
Structured③ 구조적(블록) 프루닝 (블록 크기 32, 72개)128–3072128–30726,144–503,808
LogSparse[60]④ Transformer 희소 어텐션 행렬
(슬라이딩 윈도우 + 대각선)
4,0964,09690,115
Strided[43]4,0964,096766,144

⟨Table 4.9⟩ 실험에 쓰인 희소 행렬. SpMM과 SDDMM 두 연산자에서 네 범주를 시험한다.

SpMM 결과 (Fig 4.14–4.15)

행렬 범주vs cuSPARSEvs VectorSparsevs Tritonvs SparseTIRSparseTIR의 포맷
① GNN 인접행렬2.1–18.0×2.3–5.3×1.4–2.7×hyb
② 비구조적 프루닝3.1×15.5×1.3×BSR 또는 SR-BCRS[61]
③ 구조적 프루닝7.6×7.6×1.3×1.1×BSR 또는 DBSR
④ 희소 어텐션2.3–3.8×2.0–3.1×1.1–1.2×1.0–1.1×BSR / SR-BCRS

⟨Table 4.9 기반, Fig 4.14 요약⟩ 기하평균 가속. 인접행렬의 특징 크기는 J ∈ {32, 64, 128, 256, 512}, 프루닝 행렬은 시퀀스 길이 512.

왜 더 빠른가. 첫째, 탐색 공간에 블록 포맷과 ELL 포맷 하위 작업을 모두 담아 최선 조합을 찾으므로 — 희소 행렬의 조밀한 부분에만 Tensor Core를 쓸 수 있다. 둘째, ELL 포맷 템플릿이 GPU 공유 메모리를 활용해 전역 메모리 → 로컬 레지스터의 값비싼 데이터 이동을 줄인다. 셋째, 행·열 재정렬로 국소 밀도를 높일 수 있고 블록 포맷의 후보 형상이 더 다양해 더 나은 하이브리드 포맷을 찾을 수 있다. SparseTIR의 hyb 포맷은 열 방향 분할 후 행당 비영 수로 행을 버킷에 넣고 각 버킷을 별도 ELL로 저장해 캐시 지역성과 부하 균형을 개선하지만 Tensor Core를 쓰지 않는다. VectorSparse의 1D-벡터 포맷은 단순 블록보다 0을 덜 저장하지만 행렬이 충분히 조밀하지 않으면 여전히 부족하다.

메모리 사용. cuSPARSE의 CSR과 비교하면, "hyb"·"ELL"은 행 길이가 상수라 행 길이 배열이 불필요하고 "1D-vector"·"block"은 원소가 아닌 벡터·블록의 위치를 CSR식으로 저장해 메모리가 덜 든다. 그러나 CSR만이 0을 패딩하지 않는다 — 이 때문에 cora·citeseer 등에서는 절감이, proteins·reddit 등에서는 증가가 나타난다. STile은 ppi·proteins·reddit에서 선택 하위 작업 다수가 블록 포맷이라 모든 베이스라인보다 메모리를 많이 쓰지만(VectorSparse의 1D-벡터 길이가 STile의 블록 높이보다 짧아 더 유연하고, SparseTIR의 hyb는 0 패딩이 적어 더 효율적), 블록 포맷이 가능하게 한 Tensor Core 계산과 효율적 커널 템플릿 덕에 여전히 더 낮은 지연을 달성한다.

SDDMM 결과 (Fig 4.16–4.17)

행렬 범주vs DGLvs VectorSparsevs SparseTIR (BSR)vs SparseTIR (1D)vs Triton
① GNN 인접행렬1.5–6.9×3.4–2283.5×1.1–1.3×
② 비구조적 프루닝2.4×4.8×3.4×1.1×
③ 구조적 프루닝4.3×3.6×1.7×1.6×1.1×
④ 희소 어텐션3.3–7.5×3.5–5.2×1.7–1.9×1.2–1.7×1.5–1.7×

⟨Fig 4.16 요약⟩ DGL 대비 기하평균 가속. 인접행렬의 축약 루프 길이는 K ∈ {32, 64, 128, 256, 512}, 프루닝 행렬은 K = 512.

SDDMM에서는 출력 점별 계산 워크로드가 서로 독립이고 양도 동일해, 1D 포맷으로 저장하고 출력 점 계산을 스레드에 배정하면 부하 균형 문제가 없다 — 벡터화 로드/스토어 인트린식과 축약 루프 병렬화 같은 최적화까지 더해 SparseTIR가 DGL 대비 1.4–5.6× 가속을 얻는다. VectorSparse는 Tensor Core와 축약 루프 병렬화를 쓰지만 성능이 훨씬 나쁘다 — 단순히 1D-벡터 포맷을 쓰는 것이 이 행렬들에 좋은 선택이 아님을 보여준다. STile은 블록 포맷(Tensor Core)과 1D 포맷 하위 작업을 모두 탐색 공간에 두어 양쪽의 이점을 취한다 — reddit, K = 32에서 1D만 3.24 ms, 블록만 2.66 ms, 둘 다 고려하면 2.07 ms로 각각 1.6×·1.3× 개선된다. 메모리에서는 1D 포맷이 비영 원소마다 행·열 인덱스를 저장하는 반면 블록·1D-벡터는 위치 정보에 메모리를 덜 쓰되 여분 0을 저장할 수 있다 — STile은 조밀한 부분에서 위치 정보를 절약하고 희소한 부분에서 패딩을 피해 DGL과 같거나 더 우수하다(reddit 0.9×).

탐색 시간·절제 연구·탐색 공간 연구·비용 모델

SEARCH TIME · TABLE 4.10

모든 데이터셋을 1시간 내 탐색

Algorithm 6의 평균 탐색 시간은 복잡도 분석과 정합한다. 소형 행렬(cora, citeseer)은 1초 미만(SpMM 0.3–0.6 s)이고, 최대 규모에서도 SpMM은 reddit 1772.5 s·proteins 1242.6 s, SDDMM은 ND 3015.7 s·reddit 2831.0 s로 어느 데이터셋도 1시간 내에 끝난다. 최적화된 연산자가 추론·학습에서 여러 번 실행되며 상각되므로 수용 가능하다. 다른 경쟁자는 튜닝이 없거나 매우 작은 파라미터 공간만 튜닝하므로 탐색 시간을 보고하지 않는다.

ABLATION · TABLE 4.11

철회는 지연, 국소 탐색은 시간

철회 미적용 시 SpMM 지연이 1.0–1.5× 상승한다 — 그리디가 원자적 하위 작업을 더 많이 고르기 때문이다. proteins에서 철회 없이는 원자적 블록 포맷 하위 작업이 81,745개 선택되지만, 철회를 쓰면 단 1개만 선택된다.

국소 탐색 미적용 시 지연은 같거나 더 높고(ppi에서 1.2×, 역시 원자적 작업 증가), 무엇보다 탐색 시간이 1.0–267.4× 느려진다 — 국소 탐색이 더 큰 희소 연산자의 최적화를 가능하게 한다.

SEARCH SPACE · TABLE 4.12

깊이 1.0–1.7×, 너비 1.0–2.6×

깊이(분해 수준 수 ∈ {1, 2, 10, 100, ∞}, 기본 ∞)를 키우면 지연이 대체로 개선되고 충분히 커지면 안정된다(기본 설정이 단일 수준 대비 1.0–1.7× 우수). 최적 깊이는 연산자의 서로 다른 희소 패턴 수로 결정되며 시험 연산자에서 1~24로 변한다 — ∞로 두면 비용 모델에 따라 적응적으로 탐색한다. 깊이 확대가 탐색 시간을 반드시 늘리지는 않는다 — SDDMM on Strided는 단일 수준에서 15회 반복·13,720개 타일을 쓰지만 다중 수준에서는 2회 반복·9,848개 타일로 끝난다(잔여 비영 원소 재조직이 새 타일의 커버 효율을 높이기 때문).

너비(기본 포맷 수 1 → 2)를 키우면 지연이 대체로 개선된다(1.0–2.6× 우수) — SpMM에서 블록은 고밀도, ELL은 저밀도에 잘 맞아 조합이 다양한 패턴에 잘 작동한다. 반대로 너비를 1로 줄이면 공간이 크게 축소되어 탐색 시간은 기본의 0.002–0.7×가 된다(SDDMM on ND).

Fig 4.18은 설정별로 얻어지는 SDDMM on Strided의 희소 포맷을 보여준다(초록은 블록 포맷, 파랑은 1D 포맷). 기본 설정에서는 행렬 A의 조밀 부분과 희소 부분을 두 부분으로 잘 분리해 각각 적합한 포맷으로 저장한다. 깊이가 1이면 더 희소한 부분의 비영 원소를 저장할 때 잔여 원소에 대한 새 1D 타일을 생성할 수 없어 일부 비영 원소를 중복 저장해야 하고, 이는 계산 낭비가 된다. 블록 기본 포맷만 고려해도 계산이 낭비되고, 1D 기본 포맷만 고려하면 Tensor Core를 쓰지 못한다.

비용 모델 성능. SpMM에서 5,000개, SDDMM에서 13,060개 하위 작업을 무작위 표집해(각각 ELL·1D 포맷 — 블록 포맷은 이미 비용 표가 있으므로 제외) GPU 코어 포화 상태의 지연을 측정하면 예측과 실측 사이에 선형 상관이 나타난다 — 피어슨 상관계수는 ELL 0.9243, 1D 0.9997(양쪽 p = 0.0), RMSE는 1.4e-4, 4.8e-05다. 1D에서 매우 정확한 이유는 탐색 공간에 한 종류의 1D 타일만 고려하기 때문이다. ELL 쪽은 덜 정확하지만(경험적 근사 한계 24%) Tensor Core를 쓰는 블록 포맷 하위 작업이 한 자릿수 배 더 빠를 수 있다는 점에서 여전히 좋은 하이브리드 포맷을 찾는 데 유용하다. ELL용 비용 모델로 MLP[64]도 시도했는데 RMSE는 3.3e-05로 거의 한 자릿수 작았으나, 달성 연산자 지연은 동일하면서 예측용 특징 계산이 늘어 탐색 시간이 1.1–6.1× 증가했다. 즉 이 비용 모델은 예측 성능과 실행 효율을 함께 달성한다.

4.4

결론

CONCLUSION

이 장은 확장 가능한 GNN 학습의 계산을 가속하는 두 방법을 제시했다 — DAHA는 세밀한 데이터·하드웨어 인지 실행 계획을 위한 모델 수준 프레임워크로, 새로운 하이브리드 CPU–GPU 파이프라인, 배치 내 실행 계획 재작성, 효율적 배치 간 스케줄링을 도입해 유의미한 엔드투엔드 가속을 달성했다. STile은 희소 계산을 자동 최적화하는 연산자 수준 프레임워크로, 유연한 텐서 변환과 다중 수준 타일링을 통해 확장된 탐색 공간을 탐색함으로써 하이브리드 희소 포맷 선택 문제를 해결하고 SpMM에서 cuSPARSE 대비 최대 18× 가속을 산출했다. 향후 과제로는 DAHA에 캐싱 전략을 통합하는 것과 탐색 과정을 한층 최적화하는 것이 남는다.

REF

참고문헌

CHAPTER 4 · 79 REFERENCES

[1]–[37] · DAHA (§4.2) 관련 문헌

  1. [1] Abadal et al. 2021. Computing GNNs: A survey from algorithms to accelerators. ACM CSUR.
  2. [2] Applegate & Cook. 1991. A computational study of the job-shop scheduling problem. ORSA J. Comput. 3(2).
  3. [3] Chen et al. 1998. A review of machine scheduling: Complexity, algorithms and approximability. Handbook of Combinatorial Optimization.
  4. [4] Chen et al. 2018a. FastGCN: Fast Learning with GCNs via Importance Sampling. ICLR.
  5. [5] Chen et al. 2018b. Stochastic Training of GCNs with Variance Reduction. ICML.
  6. [6] Chiang et al. 2019. Cluster-GCN. SIGKDD.
  7. [7] Cong et al. 2020. Minimal Variance Sampling with Provable Guarantees for Fast Training of GNNs. SIGKDD.
  8. [8] Fey & Lenssen. 2019. Fast Graph Representation Learning with PyTorch Geometric. arXiv:1903.02428.
  9. [9] Fishkin et al. 2008. Grouping techniques for scheduling problems: Simpler and faster. Algorithmica 51(2).
  10. [10] Gandhi & Iyer. 2021. P3: Distributed Deep Graph Learning at Scale. OSDI.
  11. [11] Goldberg et al. 2001. Better approximation guarantees for job-shop scheduling. SIAM J. Discrete Math. 14(1).
  12. [12] Hamilton et al. 2017. Inductive representation learning on large graphs (GraphSAGE). NIPS.
  13. [13] Horowitz & Sahni. 1976. Exact and Approximate Algorithms for Scheduling Nonidentical Processors (FPTAS). J. ACM 23(2).
  14. [14] Hu et al. 2020. Open Graph Benchmark. NIPS.
  15. [15] Huang et al. 2018. Adaptive sampling towards fast graph representation learning. NIPS.
  16. [16] Kaler et al. 2022. Accelerating training and inference of GNNs with fast sampling and pipelining (SALIENT). MLSys.
  17. [17] Ke et al. 2013. Optimus: a dynamic rewriting framework for data-parallel execution plans. EuroSys.
  18. [18] Kim et al. 2021. Accelerating GNN training with locality-aware partial execution. APSys.
  19. [19] Kipf & Welling. 2017. Semi-Supervised Classification with GCNs. ICLR.
  20. [20] Lin et al. 2020. PaGraph. SoCC.
  21. [21] Lu et al. 2023. Learning Weight Signed Network Embedding with GNNs. Data Sci. Eng. 8(1).
  22. [22] Paszke et al. 2019. PyTorch: An Imperative Style, High-Performance Deep Learning Library. NIPS.
  23. [23] Shchur et al. 2018. Pitfalls of graph neural network evaluation. arXiv:1811.05868.
  24. [24] Thorpe et al. 2021. Dorylus: Affordable, Scalable, and Accurate GNN Training with Distributed CPU Servers and Serverless Threads. OSDI.
  25. [25] Wan et al. 2023. Scalable and Efficient Full-Graph GNN Training for Large Graphs. SIGMOD.
  26. [26] Wang et al. 2019. Deep Graph Library. arXiv:1909.01315.
  27. [27] Peng et al. 2022. SANCUS. VLDB 15(9).
  28. [28] Wang et al. 2022. NeutronStar: Distributed GNN Training with Hybrid Dependency Management. SIGMOD.
  29. [29] Wu et al. 2022. Serving and Optimizing Machine Learning Workflows on Heterogeneous Infrastructures. PVLDB.
  30. [30] Xiao et al. 2023. Combining Graph Contrastive Embedding and Multi-head Cross-Attention Transfer for Cross-Domain Recommendation. Data Sci. Eng. 8(3).
  31. [31] Yang et al. 2022. GNNLab. EuroSys.
  32. [32] Ying et al. 2018. Graph convolutional neural networks for web-scale recommender systems (PinSage). SIGKDD.
  33. [33] Zeng et al. 2020. GraphSAINT. ICLR.
  34. [34] Zhang et al. 2020. AGL: A Scalable System for Industrial-Purpose Graph Machine Learning. PVLDB.
  35. [35] Zheng et al. 2022a. ByteGNN: efficient graph neural network training at large scale. PVLDB.
  36. [36] Zheng et al. 2022b. Distributed hybrid CPU and GPU training for GNNs on billion-scale heterogeneous graphs (DistDGLv2). SIGKDD.
  37. [37] Zhu et al. 2019. AliGraph. PVLDB.

[38]–[79] · STile (§4.3) 관련 문헌

  1. [38] Ahrens & Boman. 2020. On Optimal Partitioning For Sparse Matrices In Variable Block Row Format. arXiv:2005.12414.
  2. [39] Albert et al. 1999. Diameter of the world-wide web (NotreDame). Nature 401(6749).
  3. [40] Beltagy et al. 2020. Longformer: The Long-Document Transformer. arXiv:2004.05150.
  4. [41] Chen et al. 2022. Pixelated Butterfly: Simple and Efficient Sparse training for Neural Network Models. ICLR.
  5. [42] Chen et al. 2021. Efficient tensor core-based GPU kernels for structured sparsity under reduced precision (VectorSparse). SC.
  6. [43] Child et al. 2019a. Generating long sequences with sparse transformers (Strided). arXiv:1904.10509.
  7. [44] Child et al. 2019b. Generating Long Sequences with Sparse Transformers. arXiv:1904.10509.
  8. [45] Choi et al. 2010. Model-driven autotuning of sparse matrix-vector multiply on GPUs. PPoPP.
  9. [46] Chou et al. 2018. Format abstraction for sparse tensor algebra compilers. PACMPL 2(OOPSLA).
  10. [47] NVIDIA. 2022. cuSPARSE :: CUDA Toolkit Documentation v11.7.1.
  11. [48] Du et al. 2022. AlphaSparse: Generating High Performance SpMV Codes Directly from Sparse Matrices. SC22.
  12. [49] Gale et al. 2020a. Sparse GPU kernels for deep learning (1D tiling). SC.
  13. [50] Gale et al. 2020b. Sparse GPU kernels for deep learning. SC20.
  14. [51] Hamilton et al. 2017. Inductive representation learning on large graphs (ppi, Reddit). NIPS 30.
  15. [52] Han et al. 2015. Learning both Weights and Connections for Efficient Neural Networks. arXiv:1506.02626.
  16. [53] Hassin & Levin. 2005. A Better-Than-Greedy Approximation Algorithm for the Minimum Set Cover Problem. SIAM J. Comput. 35(1).
  17. [54] Helal et al. 2021. ALTO: adaptive linearized storage of sparse tensors. ICS.
  18. [55] Hong et al. 2019. Adaptive sparse tiling for sparse matrix multiplication. PPoPP.
  19. [56] Hu et al. 2020b. FeatGraph: a flexible and efficient backend for GNN systems. SC.
  20. [57] Labini et al. 2022. Blocking Techniques for Sparse Matrix Multiplication on Tensor Accelerators. arXiv:2202.05868.
  21. [58] Lagunas et al. 2021. Block Pruning For Faster Transformers. EMNLP.
  22. [59] Li et al. 2022b. Automatic Horizontal Fusion for GPU Kernels. CGO.
  23. [60] Li et al. 2019. Enhancing the locality and breaking the memory bottleneck of transformer on time series forecasting (LogSparse). NeurIPS.
  24. [61] Li et al. 2022a. Efficient Quantized Sparse Matrix Operations on Tensor Cores (SR-BCRS). SC22.
  25. [62] Liu & Vinter. 2015. CSR5: An efficient storage format for cross-platform sparse matrix-vector multiplication. ICS.
  26. [63] McCarley et al. 2019. Structured pruning of a BERT-based question answering model. arXiv:1910.06360.
  27. [64] Mehrabi et al. 2021. Learning Sparse Matrix Row Permutations for Efficient SpMM on GPU Architectures (MLP 비용 모델).
  28. [65] Niu et al. 2021. TileSpMV: A Tiled Algorithm for Sparse Matrix-Vector Multiplication on GPUs. IPDPS.
  29. [66] Niu et al. 2022. TileSpGEMM: a tiled algorithm for parallel sparse general matrix-matrix multiplication on GPUs. PPoPP.
  30. [67] Hu et al. 2020. Open Graph Benchmark (arxiv, Proteins). NeurIPS 33.
  31. [68] Sanh et al. 2020. Movement Pruning: Adaptive Sparsity by Fine-Tuning. NeurIPS 33.
  32. [69] Sen et al. 2008. Collective classification in network data (Cora, Citeseer, Pubmed). AI Magazine 29(3).
  33. [70] Tillet et al. 2019. Triton: an intermediate language and compiler for tiled neural network computations. MAPL.
  34. [71] Wang et al. 2019. Deep Graph Library. arXiv:1909.01315.
  35. [72] Wang et al. 2021a. TC-GNN: Accelerating Sparse GNN Computation Via Dense Tensor Core on GPUs (condense 포맷). arXiv:2112.02052.
  36. [73] Wang et al. 2021b. Dual-side Sparse Tensor Core. ISCA.
  37. [74] Williams et al. 2009. Roofline: an insightful visual performance model for multicore architectures. Commun. ACM 52(4).
  38. [75] Won et al. 2023. WACO: Learning Workload-Aware Co-optimization of the Format and Schedule of a Sparse Tensor Program. ASPLOS.
  39. [76] Ye et al. 2023. SparseTIR: Composable Abstractions for Sparse Compilation in Deep Learning (hyb 포맷). ASPLOS.
  40. [77] Yu et al. 2021. Exploiting Online Locality and Reduction Parallelism for Sampled Dense Matrix Multiplication on GPUs. ICCD.
  41. [78] Zheng et al. 2022. SparTA: Deep-Learning Model Sparsity via Tensor-with-Sparsity-Attribute (집합 커버 기반 분해). OSDI.
  42. [79] Zhou et al. 2023. uGrapher: High-Performance Graph Operator Computation via Unified Abstraction.