모니터링 기간: 지난 24시간 (2026-09-29 07:00 ~ 2026-09-30 07:00, 베이징 시간; 직전 보고는 09-29로, 기간이 겹침 없이 매끄럽게 연결됨). 출처: GitHub (tile-ai 조직 29개 저장소 푸시 점검, 기간 내 7개 저장소에 푸시 있음: tilelang, TileOPs, TileOPs-nightly, tilelang-ascend, tilelang-hygon, TileFoundry, TileOPs.github.io; 메인 저장소 2건 병합 및 7건 신규 오픈, TileOPs 17건 병합, Ascend 저장소 2건 수정, Hygon과 TileFoundry 각 1건 병합, 야간 스냅샷 1건 무실패), Google News RSS 중영문 다중 쿼리 (프록시 경유, 0건 적중), Hacker News, arXiv, 커뮤니티 저장소 점검


이번 호 인덱스

  • 오늘의 핵심: Ascend 950 백엔드 공개 릴리스——134 커밋 네이티브 백엔드 PR 오픈, 0.1.15 버전 번호 동시 상향 (09-30)
    1. 핵심 프로젝트 진행
      • 1.1 메인 저장소: Simplify 미사용 바인딩 제거기 병합——읽기 후 쓰기, 부작용 및 메타데이터 참조 모두 회귀 안전망 확보 (09-29)
      • 1.2 메인 저장소: Windows wheel 빌드 ccache 히트 복구——clang-cl 인자 분리 작성으로 변경 (09-29)
      • 1.3 메인 저장소 큐: 7건 신규 오픈과 원자적 연산 수정 라인, 오픈 PR 총 116건 (09-29/09-30)
      • 1.4 TileOPs: INT8 양자화 및 역양자화 4개 커널 병합——비트 단위 torch 참조 정렬 (09-29/09-30)
      • 1.5 TileOPs: INT4 그룹별 양자화 커널 병합, 블록 양자화 2건 대기 (09-30)
      • 1.6 TileOPs: 샘플링 연산자 계층 병합——지난 호 대기 중이던 6개 정식 반영 (09-29)
      • 1.7 TileOPs: 어텐션 4건——FP8 표현식 하향, varlen 아웃바운드 공유 메모리 전환, SM89 헤드 차원 512 수정 (09-29/09-30)
      • 1.8 TileOPs: 커널 인터페이스 및 공유 메모리 정비 2건 (09-29)
      • 1.9 TileOPs: CI 및 엔지니어링 규범 3건——8 동시성 스모크, 절대 임포트, 매니페스트 검증 단일화 (09-29/09-30)
      • 1.10 TileOPs: 요소 수준 속도 향상 2건——나눗셈 폴백 스레드당 1회, f32 16바이트 이중 로드 (09-29/09-30)
      • 1.11 야간 스냅샷: 정합성 1030건, 벤치마크 1355건, 무실패 무오류 (09-30 새벽)
    1. 멀티 백엔드 적응 (Ascend / MetaX / Hygon / Moore Threads)
      • 2.1 Ascend: 950 릴리스 브랜치 기간 내 재수정——브로드캐스트 벡터화 및 스칼라 리덕션 복구 (09-30)
      • 2.2 Ascend: ascend 저장소 2건 수정——TVM 한 줄 패치로 회귀 진짜 원인 규명 (09-29)
      • 2.3 Hygon: 비동기 복사 및 캐시 swizzle lowering 개선 병합 (09-29)
      • 2.4 MetaX / Moore Threads / MLIR Ascend: 공식 저장소 조용 (09-30 점검)
    1. 생태계와 채택처
      • 3.1 TileFoundry: AtomSched 4단계 병합——HIR의 TIR 하향과 스케줄링 CLI (09-29)
      • 3.2 문서 사이트: 양자화, 샘플링 및 공유 전문가 MLP 연산자 API 레퍼런스 진입 (09-30)
      • 3.3 채택처 점검: TileKernels와 FlashQLA 기간 내 푸시 없음 (09-30)
      • 3.4 버전 리듬: 0.1.15 상향 PR 오픈; TileRT와 TileFoundry 릴리스 페이지 정체 (09-30)
    1. 커뮤니티, 튜토리얼 및 활동
      • 4.1 커뮤니티 저장소 점검: 기간 내 신규 커밋 없음 (09-30)
      • 4.2 미디어 및 학술 측: Google News 0건 적중, arXiv 신규 프리프린트 없음 (09-30)
    1. 트렌드 관찰
      • 5.1 계약에서 커널까지: 양자화 패밀리 48시간 만에 이행 완료
      • 5.2 Ascend 950: 멀티 백엔드 서사가 「적응 저장소」에서 「메인 저장소 네이티브」로
      • 5.3 엔지니어링 수용력: 테스트량 +21% 하에서의 CI 재구성
      • 5.4 공백과 리스크 포인트
  • 부록: 자료와 점검 설명

오늘의 핵심: Ascend 950 백엔드 공개 릴리스——134 커밋 네이티브 백엔드 PR 오픈, 0.1.15 버전 번호 동시 상향 (09-30)

날짜: 2026-09-30 출처: Ascend 950 백엔드 PR (#3308)/ 버전 상향 PR (#3309)/ 릴리스 브랜치 ascend-950-0930

09-30 새벽, TileLang 메인 저장소에서 상징적인 PR 두 건이 연달아 열렸다: 「Public Release 9/30」으로 표기된 Ascend 950 네이티브 백엔드와 버전 번호 0.1.15로 상향. 전자는 134 커밋, 379 파일, +79956/-733의 규모로 Ascend 라인을 독립 어댑테이션 저장소에서 메인 저장소의 일급 백엔드로 끌어올렸다:

  • 엔드투엔드 경로: Ascend 언어 방언을 새로 추가하여 커널 런치, 메모리 할당, 데이터 이동 및 연산 작업을 포괄하며, 하드웨어 특화 lower, 자동 스케줄링 및 동기화, 디바이스 코드 생성, Bisheng 컴파일 및 NPU 런타임 로딩을 포함한다; 사용자는 target="ascend"로 Ascend 950 커널을 직접 개발할 수 있다.
  • 프로그래밍 모델: 단일 커널 내에서 Cube(AIC) T.gemm과 Vector(AIV) 연산을 조합; T.SimdVF / T.SimtVF 영역에서 SIMD와 SIMT 프로그래밍을 혼합; UB / L1 / L0 명시적 할당; T.copy / T.dual_copy 블록 단위 이동 및 크로스 코어 전송; MXFP8 / MXFP4 블록 스케일링 GEMM 저정밀도 경로 포함.
  • 컴파일러와 스케줄링: Ascend 프랙탈 레이아웃의 자동 추론 및 저장소 정규화; AutoSchedule가 의존성 및 지연 인식 Cube/Vector 스케줄링, 파이프라인과 멀티 버퍼링 수행; 스케줄 인식 코어 내 및 크로스 코어 동기화 삽입, 중복 동기화 제거, 플래그 자동 할당 및 재사용 부수 기능 포함.
  • 빌드 통합: USE_ASCEND 빌드 스위치, Bisheng 컴파일 체인, 런타임 로딩과 커널 런치가 모두 메인 저장소에 포함됨; 기존 백엔드 인터페이스에 따라 멀티 백엔드 아키텍처에 연결되고 공유 컴파일러 인프라를 재사용.
  • 평가 기준 (PR 내): Torch NPU 대조, BF16 GEMM, FP8 변환과 GQA 역방향 각 4개 형상으로 평가; GEMM과 GQA는 TFLOP/s, FP8 변환은 유효 GB/s로 보고.
  • 규모와 서명: 브랜치와 main 동기화, 134 커밋 선행, 모니터링 기간 내에도 수정 추가 중 (최신 커밋은 브로드캐스트 벡터화와 스칼라 리덕션 복원, 09-30 새벽); Co-author는 10명, 그중 2명의 deepseek.com 서명 개발자 포함.
  • 연동: 같은 날 열린 0.1.15 버전 상향 PR은 VERSION 한 줄만 변경 (0.1.14에서 0.1.15로), 950 백엔드와 인접하여 반영되며 동일 배치 릴리스 여부는 지켜볼 필요가 있다.

판단: 병합되면 Ascend 950은 처음으로 메인 저장소 네이티브 백엔드 형태로 자리 잡는다 (이전까지 Ascend 지원은 주로 독립 어댑테이션 저장소가 담당), 「멀티 백엔드」가 미러 저장소 어댑테이션에서 메인라인 역량으로 승격된다; 사용자 입장에서는 Ascend 950의 연산자 개발과 DeepGEMM 스타일 커널을 TileLang으로 직접 작성할 수 있다. 리스크 요인은 규모 (379 파일, 약 8만 행 추가)가 가져오는 리뷰와 병합 후 안정성 비용이며, NPU 측 성능은 현재 PR 내 차트의 공개 기준만 존재한다.


1. 핵심 프로젝트 진행 상황

1.1 메인 저장소: Simplify 미사용 바인딩 제거기 병합——읽기 후 쓰기, 부작용과 메타데이터 참조 모두 회귀 안전망 확보 (09-29)

날짜: 2026-09-29 출처: Simplify 미사용 바인딩 (#3293)

  • 지난 호 새 항목이 이번 모니터링 기간에 병합됨: tl.Simplify에 UnusedBindRemover를 추가, 해당 값이 관련 부작용과 volatile 버퍼 읽기를 버리지 않고 폐기될 수 있을 때 사용되지 않는 BindNode를 반복 제거.
  • 경계 규칙: 리플렉션 필드와 컨테이너를 순회하여 메타데이터가 참조하는 바인딩을 보존; 버퍼 정의와 로드 프레디케이트에서 사용되는 바인딩은 일괄 보존; 회귀 테스트는 미사용 매크로 바인딩, 읽기 후 쓰기, 부작용, volatile 읽기, 메타데이터 참조와 공유 표현식 노드를 커버.
  • 의의: tl.Simplify의 정리 능력 확장은 지난주의 나머지 연산 경계 수정 (#3294)과 같은 방향——변환 계층의 「무엇을 과감히 삭제하고, 무엇을 반드시 남길지」가 점차 테스트 가능한 명확한 목록으로 작성되고 있다.

1.2 메인 저장소: Windows wheel 빌드 ccache 히트 복원——clang-cl 인자 분리 표기로 변경 (09-29)

날짜: 2026-09-29 출처: Windows 빌드 수정 (#3305)

  • 문제: Windows wheel 빌드가 ccache를 복원한 후에도 TVM을 반복 재컴파일——단일 약 32분, 554회 미스, 히트율 20.63%에 불과, 3일 연속 야간 빌드에서 동일 유형 발생. 근본 원인은 CMake가 clang-cl에 대해 붙여쓰기 방식 -imsvc<path> 인자를 출력, ccache 4.9.1이 이를 전처리 해시에 포함시켜 PEP 517 의존성 디렉터리가 바뀌면 캐시 키가 변함; 기존 래퍼가 전처리 텍스트를 정규화할 수 있지만 명령줄 차이는 제거 불가.
  • 수정: -imsvc <path>를 분리 표기 형식으로 변경, 캐시 키 안정성 회복; 같은 날 생성 및 병합, 리뷰 코멘트 자동 요약 재검토.

1.3 메인 저장소 큐: 신규 7건과 원자적 연산 수정 라인, 열린 PR 총 116건 (09-29/09-30)

날짜: 2026-09-29, 2026-09-30 출처: 메인 저장소 PR 목록/ 원자 연산 수정(#3307)/ DeepSelect 예제(#3304)/ 패킹 벡터 비교(#3303)

  • 모니터링 기간 내 신규 7건: #3303은 FP16/BF16 패킹 벡터 비교(결함 티켓 #3302 수정, 마스크 내장 정규화 0/1, NaN 올바른 부등호, CUDA 12 미만 및 저연산능력 스칼라 폴백 유지); #3304는 DeepSeek DeepSelect Top-K의 TileLang 예제 제출(인라인 PTX 없음, 심사 중인 #3303과 #3296에 의존, RTX 5090에서 torch.topk 대조 129개 실측 제시); #3306, #3307은 원자 연산 수정 라인(int64 원자 max/min 및 AtomicStore의 int64/bf16/fp16 크래시, #1716의 타입 정규화로 소급 가능; #3306은 미병합 종료, #3307은 이어서 심사 중); #3308, #3309는 오늘의 주요 내용 참조.
  • 기존 항목 업데이트: SM120 레지스터 A GEMM(#3286), z3 스레드 추론(#3291), C 소스 임포트 개행(#3289), popcount 확장(#3300) 등이 모니터링 기간 내 모두 업데이트됨.
  • 큐 온도: 오픈 PR 총 116건(지난 기간 112건); 이번 기간 병합 2건(#3293, #3305), “열림 많고 병합 적음” 구도 지속.

1.4 TileOPs: INT8 양자화와 역양자화 4개 커널 병합——비트 단위로 torch 참조와 정렬(09-29/09-30)

날짜: 2026-09-29, 2026-09-30 출처: 텐서별 역양자화(#2304)/ 채널별 역양자화(#2306)/ 텐서별 양자화(#2307)/ 채널별 양자화(#2308)

  • 지난 기간의 “계약 먼저 정하고 구현 착수”가 커널 실현 단계에 진입: INT8 계열의 양자화와 역양자화 총 4개 연산자 계층이 커널 측에 구현되어, 목록 상태가 implemented로 전환되었고 출력이 torch 참조 구현과 비트 단위로 정렬됨(scale 언더플로가 0이 되는 경계 사례 포함).
  • 텐서별 역양자화(#2304): q를 플랫 시퀀스로 읽고, 스레드마다 단계마다 16바이트 출력 벡터 하나를 변환, 64스레드 블록마다 4단계이며 모든 로드를 먼저 발행; 코드포인트는 지수 바이어스 정수 덧셈과 FADD 변환을 거침(I2F 우회); 블록 내 출력은 먼저 공유 메모리에 넣은 후 일괄 기록(SM90에서는 cp.async.bulk 사용); L1 evict-last 로드 헬퍼 추가(streaming_load.h).
  • 채널별 역양자화(#2306): 벡터가 행을 가로지를 때 두 행 스케일 사이에서 선택, 임의 K 단일 프로그램 실행; 채널별 양자화(#2308): 하나의 CTA가 한 행을 독점, 행 내 상주 레지스터, 스케일은 역수에 FMA 두 번으로 올바르게 반올림, 행 시작과 행 끝이 인접 행과 벡터를 공유하고 마스크 처리.
  • 텐서별 양자화(#2307): 단일 협력 실행으로 완료——1단계에서 amax 샤드를 읽고 교환(그리드 수준 배리어), 2단계에서 양자화 출력; 호출마다 커널을 빌드하고 컴파일 경계를 명시적으로 선언.
  • 진행 상황: 양자화 계열 9개 spec-only 항목 중 7개가 커널 구현에 진입(INT8 6개 + INT4 1개), FP8 블록별과 SmoothQuant는 아직 커널 PR이 없음.

1.5 TileOPs: INT4 그룹별 양자화 커널 병합, 블록 양자화 2건 대기(09-30)

날짜: 2026-09-30 출처: INT4 그룹별 양자화(#2317)/ 블록별 양자화(#2316, 심사 중)/ 블록별 역양자화(#2318, 심사 중)

  • INT4 그룹별 양자화가 두 개의 커널로 자리 잡았다: packed_weight, weight_scale, weight_zero가 torch 참조와 비트 단위로 동일하며, GemmW4A16FwdOp.repack의 패킹 포맷을 채택한다——W4A16 가중치 체인의 포맷 정렬이 이번에서 가장 실용적인 호환점이다.
  • 커널 요점: 각 lane이 32개 원소 블록을 하나씩 보유하고, 128 원소 K 스텝 내에서 lane 간 데이터 이동이 필요 없다; 4×4 워드 전치로 16바이트 연속 저장을 만들어낸다; 그룹 크기는 32에서 1024까지 2의 거듭제곱을 지원한다; 별도의 행 커널 버전도 준비되어 있다.
  • 심사 중 두 건: INT8 블록별 양자화(#2316)와 블록별 역양자화(#2318)——둘 다 #2304의 스케줄 템플릿을 따르며, “텐서/채널/블록” 세 단계의 마지막 조각을 채운다.

1.6 TileOPs: 샘플링 연산자 계층 병합——지난 기간 대기 중이던 여섯 개가 공식 반영됨 (09-29)

날짜: 2026-09-29 출처: 샘플링 연산자 계층(#2299)

  • 지난 기간 보고서에서 “심사 대기 중”으로 기록되었던 여섯 개의 샘플링 연산자 계층(TopKMask, MinPMask, TopPMask, TopKTopPMask, SamplingFromProbs, ChainSpeculativeSampling)이 09-29 오후에 병합되었다: 연산자 계층, 워크로드, 테스트가 한 번에 갖추어졌으며, 참조 수치는 FlashInfer 0.6.16(bf16/fp16/fp32 세 단계)에 정렬되고, 난수는 Philox4x32-10 정수 텐서 산술로 구현되어 Random123의 알려진 답 벡터와 일치한다. 연산자 계층은 여전히 선언형(kernel_types = {})이며, 커널 구현은 후속 PR을 기다린다.

1.7 TileOPs: 어텐션 네 건——FP8 표현식 하향, varlen 아웃바운드 공유 메모리 전환, SM89 헤드 차원 512 수정 (09-29/09-30)

날짜: 2026-09-29, 2026-09-30 출처: FP8 GQA 리프 연산자(#2294)/ varlen 프리필 아웃바운드(#2313)/ SM89 헤드 차원 512(#2312)/ 슬라이딩 윈도우 케이스 계층화(#2311)

  • FP8 GQA 하향(#2294): 출력 누산기 초기화를 T.clear로 변경하고, KV 꼬리 마스크를 레이아웃 인식 T.Parallel 루프로 표현하며, 더 이상 쓸모없어진 CUDA 보조 두 곳을 삭제했다; #2113의 증분에 속한다. 검토했던 softcap의 T.tanh 대체는 회귀로 인해 의도적으로 제외되었다——근사 tanh 경로를 유지한다.
  • varlen 아웃바운드 SMEM 경유(#2313): varlen GQA 프리필의 출력이 더 이상 acc_o 프래그먼트에서 흩어져 기록되지 않고, 무효화된 쿼리 블록 공유 버퍼를 거쳐 전체 행을 16바이트로 기록하며, 추가 공유 메모리 비용이 없다; 일부 블록은 가드 방식 직접 쓰기를 유지한다.
  • SM89 헤드 차원 512 수정(#2312): 단일 warpgroup의 32행 블록이 더 이상 스코어 블록을 레지스터에 남기지 않는다(이전에는 레이아웃 추론 충돌로 block_m=32 후보가 한 번도 컴파일되지 않았다); 기본 구성에 32×16 후보가 추가되었다(68 KiB 필요, SM89 상한 미만).
  • 테스트 계층화(#2311): 슬라이딩 윈도우 varlen의 8개 케이스를 SM90 전용으로 표시했다——이전에는 SM89에서 건너뛰기가 아니라 실패로 나타났다.

1.8 TileOPs: 커널 인터페이스와 공유 메모리 관리 두 건 (09-29)

날짜: 2026-09-29 출처: 커널 인터페이스와 디스패치(#2300)/ 공유 메모리 상한 표(#2303)

  • 커널 인터페이스화(#2300): 연산자에 커널 인터페이스를 선언하고 단일 조회로 디스패치한다——”커널 인터페이스, 구현, 호출 규격, 가용성” 등 일곱 가지 개념을 ops-design 설계 문서에 작성했다; 대체 구현은 키 이름만이 아니라 인터페이스 계약에 따라 검증되며, 백엔드는 내장 구현 옆에 자체 구현을 추가할 수 있다.
  • 공유 메모리 관리(#2303): 공유 메모리 상한을 통합 표로 수렴시켰다; FP8 GEMM은 supported_archs = [90]을 선언한다(SM89 호출은 TMA/WGMMA 커널을 잘못 선택하는 대신 명시적으로 거부된다); 희소 MLA는 저장 공간에 들어가지 않는 호출에 대해 하한 평가 후 거부한다(예: SM86/SM89에서 블록당 64 헤드, d=512는 100 KB 이상이 필요해 99 KB 상한을 초과하는 시나리오로, 이전에는 기동 실패했다).

1.9 TileOPs: CI와 엔지니어링 규범 세 건——8 동시성 스모크, 절대 임포트, 매니페스트 검증 단일화 (09-29/09-30)

날짜: 2026-09-29, 2026-09-30 출처: GPU 스모크 8 동시 실행(#2314)/ 절대 임포트 규범(#2310)/ 매니페스트 검증 단일화(#2319)

  • 스모크 속도 향상(#2314): PR 스모크를 단일 프로세스 단일 카드에서 8개 워커 프로세스로 변경. 서명 검사는 지연 생성으로 전환. 겸사겸사 bs1 디코딩의 배리어 충돌도 수정. 배경을 기록해 둘 만하다: 메인 브랜치 푸시 기준 테스트 수가 4281에서 5174로(+21%), pytest 소요 시간이 324초에서 605초로(+87%) 증가했으며, 증가분의 대부분은 커널 테스트가 아닌 매니페스트 체계의 CPU 작업에서 비롯되었다.
  • 규범(#2310): src/tileops/의 모든 임포트를 절대 임포트로 변경하고 ruff TID252로 강제(ban-relative-imports = "all", 234개 파일 재작성). 설계 문서도 동기화.
  • 매니페스트 검증(#2319): validate_manifest.py를 PR당 3회 실행에서 1회로 변경(GPU 스모크에서 이 테스트가 임계 경로의 22~32초 차지). FMA 포화도 측정이 샘플링된 GPU를 따르도록 변경.

1.10 TileOPs: 요소별 속도 향상 두 건 — 나눗셈 폴백 스레드당 1회, f32 16바이트 이중 로드(09-29/09-30)

날짜: 2026-09-29, 2026-09-30 출처: 나눗셈 폴백(#2305)/ f32 로드와 bool 저장(#2309)

  • 나눗셈 계열(#2305): FloorDivide, Remainder 및 floor 모드 Div가 #2291에서 비트 단위 정확으로 변경된 후 1.01~1.28배 회귀. 이제 fast_func로 스레드당 통합 고속 판정하도록 변경, 실패한 스레드에서만 피연산자를 재읽기하여 정확 폴백 실행, 커널은 32 레지스터 상한 유지. 16비트 고속 경로는 a * (1/b) 상향 보정 사용.
  • f32 로드(#2309): 동일 형상 이항 커널이 스레드당 16바이트 로드 2회로 변경(inductor의 XBLOCK 1024 4-warp 형태에 정렬). 비교 및 논리 계열 bool 결과는 스레드당 연속 구간 1회 저장으로 변경 — 이전에 torch-compile 대비 1.002~1.006배였던 행이 이로써 수렴.

1.11 야간 스냅샷: 정확성 1030건, 벤치마크 1355건, 실패 0건 오류 0건(09-30 새벽)

날짜: 2026-09-30 출처: 스냅샷 커밋 b8f4329a35/ 스냅샷 환경 메타데이터

  • 모니터링 기간 내 스냅샷 1건(09-30 02:53, run 36608962204; 대응 TileOPs 메인 브랜치 2ce972f98f, 즉 #2313 머지 지점): 정확성 1030건(2건 스킵) 실패 0건 오류 0건; 벤치마크 1355건(39개 스위트) 실패 0건 오류 0건. 환경: H200, CUDA 13.2, torch 2.13, tilelang 0.1.11+cu132.
  • 이전 스냅샷(b7f5a1b4bd, 정확성 1027, 벤치마크 1335) 대비: 정확성 +3, 벤치마크 +20. 기준은 여전히 “실패 0건”. 참고: 이 스냅샷의 머지 지점은 양자화 커널 배치(#2304~#2317)보다 이르므로, 해당 배치의 회귀 상태는 다음 스냅샷에 반영될 예정.

2. 멀티 백엔드 어댑테이션(Ascend / MetaX / Hygon / Moore Threads)

2.1 Ascend: 950 릴리스 브랜치 모니터링 기간 내 추가 수정 — 브로드캐스트 벡터화와 스칼라 리덕션 복구(09-30)

날짜: 2026-09-30 출처: 릴리스 브랜치 ascend-950-0930

  • 릴리스 브랜치가 이 모니터링 기간에 최신 수정 커밋 수신(09-30 새벽, 커밋 39691ebaac): 브로드캐스트 벡터화와 스칼라 리덕션 복구 — “Public Release 9/30” PR의 모니터링 기간 내 최신 수정 중 하나. 브랜치는 main과 동기화되어 134 커밋 앞서 있으며, 메인 PR은 여전히 열려 있음. 기술 구성은 오늘의 중점 참조.

2.2 Ascend: ascend 저장소 두 건 수정 — TVM 한 줄 패치로 회귀 진짜 원인 규명(09-29)

날짜: 2026-09-29 출처: TVM 회귀 범위 초과 패치(#1846)/ CI 서브모듈 정리(#1847)

  • 되돌림의 진짜 원인 밝혀짐(#1846): 고정된 TVM 서브모듈에 한 줄 패치를 추가하여, TVM이 잘못된 호출 스택을 생성할 때 발생하는 범위 초과 읽기(std::string tmp(symname, symsize)를 단일 인자 생성자로 변경)를 수정. 배경은 지난 리포트에서 기록한 “#1829가 병합된 지 4일 만에 전체가 되돌려짐” 건: tvm.error.InternalError를 발생시키기를 기대하는 9개의 컴파일러 부정 테스트가 x86 runner에서 안정적으로 SIGSEGV가 발생하고 ARM runner에서는 안정적으로 통과했음. 동일 머신 단일 변수 A/B 실험 결과 크래시는 이 TVM 결함에서 비롯된 것이며 #1829의 로직과는 무관함을 보여줌. 패치는 기존 apply_tvm_patches.sh 메커니즘을 그대로 사용(세 개의 빌드 진입점에서 자동 적용, 이미 적용된 경우 건너뜀, 향후 적용 불가 시 빌드가 조용히 넘어가지 않고 직접 오류를 발생시킴).
  • CI 정리(#1847): 자체 호스팅 runner에서 actions/checkout이 서브모듈을 정리하지 않고, git submodule update는 commit이 변경될 때만 포인터를 전환하기 때문에, 이전 PR에서 TVM에 적용한 패치가 이후 모든 빌드로 유출되었음(#1846의 빌드가 잔여물 때문에 패치 적용 불가 오류를 겪음). 빌드 전 서브모듈을 리셋하도록 수정.
  • 판단: #1829가 되돌려진 것은 그 자체의 결함이 아님 — 되돌려진 기능을 깨끗한 베이스라인 기준으로 다시 제출하는지가 다음 관찰 포인트.

2.3 Hygon: 비동기 복사 및 캐시 swizzle lowering 개선 병합(09-29)

날짜: 2026-09-29 출처: Hygon 비동기 복사(#13)/ 병합 commit 145fc5a8e7

  • 지난 리포트에서 기록한 오픈 PR이 이번 모니터링 기간에 병합(9개 파일 +497/-41): 비동기 복사와 캐시 swizzle의 lowering 개선. 변경은 codegen_hcu(+121/-29), op/copy.cc(+269/-8), tl_templates/hcu/copy.h(+47)와 amd_buffer_addressing.hpp(+20)에 집중되었고, 추가로 GEMM의 LDS 전략 미세 조정이 있으며 Co-authored 서명은 Teng Huang. Hygon은 이번 기간 중국 국산 백엔드 중 Ascend 외에 유일하게 코드 진전이 있는 곳.

2.4 MetaX / Moore Threads / MLIR Ascend: 공식 저장소 침묵(09-30 확인)

날짜: 2026-09-30 출처: MetaX 저장소/ Moore Threads 저장소/ MLIR Ascend 저장소

  • MetaX(최근 푸시 09-24), Moore Threads(09-17), MLIR Ascend(09-24) 공식 저장소는 모니터링 기간 내 푸시가 없었으며, 커뮤니티 측에도 새로운 커밋이 없음. 중국 국산 백엔드의 이번 주 관심은 Ascend(950 백엔드 + 두 건의 수정)와 Hygon(#13 병합)에 집중됨.

3. 생태계와 채택자

3.1 TileFoundry: AtomSched 4단계 병합 — HIR을 TIR로 강등 및 스케줄링 CLI(09-29)

날짜: 2026-09-29 출처: AtomSched 4단계(#192)/ TileFoundry 저장소

  • 규모 99개 파일 +4885/-2885의 단계적 병합: ConvertHIRToTIR 모듈 레벨 pass를 신설하여 작성된 스케줄링 HIR을 검증된 TIR로 강등하고, tilefoundry schedule finalize / facts / candidates 세 그룹의 CLI 리포트를 추가했으며, 거부된 matched 워크플로를 제거.
  • 설계 지향: IR 선언과 접근 관계가 유일한 진실의 원천이 되고, 중복된 문제 계획, 사전 스캔, 추론 분포와 수기 작성 접근자를 삭제. 리포트 목록, 정렬, 모드 렌더링과 HIR/TIR 후보 페어링은 공유 리플렉션과 중립 레지스트리로 변경. “선언 기반 스케줄링” 노선의 마무리 단계에 있음.

3.2 문서 사이트: 양자화, 샘플링과 공유 전문가 MLP 연산자가 API 레퍼런스에 진입(09-30)

날짜: 2026-09-30 출처: 문서 사이트 업데이트(#57)

  • TileOPs 문서 사이트는 양자화, 샘플링 및 공유 전문가 MLP 연산자가 병합된 후 API 레퍼런스를 동기 업데이트했다—— #2299, #2304~#2317의 연산자 출시 리듬과 같은 날 따라간다.

3.3 채택자 점검: TileKernels와 FlashQLA 모니터링 기간 내 푸시 없음 (09-30)

날짜: 2026-09-30 출처: TileKernels 저장소/ FlashQLA 저장소

  • DeepSeek TileKernels는 여전히 2026-04에 멈춰 있다; Qwen FlashQLA의 마지막 푸시는 09-28(이전 모니터링 기간, SM100 tcgen05 보고됨)이며, 이번 모니터링 기간에는 새 커밋이 없다. 두 채택자의 공개 동향 모두 간헐기에 있다.

3.4 버전 리듬: 0.1.15 승격 PR 생성됨; TileRT와 TileFoundry 릴리스 페이지 정체 (09-30)

날짜: 2026-09-30 출처: 메인 저장소 릴리스 페이지/ TileRT 릴리스 페이지/ TileFoundry 릴리스 페이지

  • 메인 저장소 v0.1.14(09-02 릴리스)가 28일을 채웠고, 0.1.15 버전 승격 PR이 이번 모니터링 기간에 생성되었다(오늘의 중점 참조), 정식 release는 아직 보이지 않는다; TileOPs는 독립 릴리스가 없다.
  • TileRT 릴리스 페이지는 여전히 v0.1.5.post2에 멈춰 있다(이전 기간에 언급된 v0.1.6 릴리스 PR 병합 후 정식 출판은 보이지 않음); TileFoundry 최신은 여전히 v0.0.2(09-10)이다.

4. 커뮤니티, 튜토리얼 및 활동

4.1 커뮤니티 저장소 점검: 모니터링 기간 내 새 커밋 없음 (09-30)

날짜: 2026-09-30 출처: 커뮤니티 튜토리얼 저장소/ SOPHGO BM1690 파이프라인 저장소/ S5000 성능 분석 도구/ tvm_tilelang_cookbook

  • 네 커뮤니티 저장소(tilelang-tutorials, bm1690-pipelines, Tilelang_musa, tvm_tilelang_cookbook) 모두 모니터링 기간 내 새 커밋이 없다; cookbook은 chart 브랜치의 스타 히스토리 자동 푸시만 있었고(실질 동향 아님, 집계 제외). 이전 기간에 보고된 튜토리얼 사이트 CPU 예제와 BM1690 파이프라인 진전은 이번 기간 이전 내용이므로 중복 전개하지 않는다.

4.2 미디어 및 학술 측: Google News 제로 히트, arXiv 새 프리프린트 없음 (09-30)

날짜: 2026-09-30 출처: Google News/ Hacker News/ arXiv

  • Google News RSS 중영문 다중 쿼리(프록시 경유) 24시간 모니터링 기간 내 제로 히트; 「Ascend 950」의 중영문 히트는 모두 모니터링 기간 이전의 증시 및 거시 기사로, TileLang 백엔드 릴리스와 직접 관련이 없다(릴리스 표기 9/30, 미디어 아직 미추적). Hacker News 모니터링 기간 항목은 본 주제와 무관; arXiv 검색 「tilelang」 최신은 여전히 07-24의 TileSight이다.

5. 트렌드 관찰

5.1 계약에서 커널로: 양자화 패밀리 48시간 만에 이행 완료

이전 기간 보고의 관찰점은 「이번 배치 연산자 계층에는 아직 커널이 없으며, 이후 커널 안착 리듬을 지켜본다」였다. 48시간도 채 되지 않아 양자화 패밀리 9개 중 7개가 커널 구현에 진입했다: INT8 네 개 병합 및 torch 참조와 비트 단위 정렬, INT4 per-group 한 개 병합 및 W4A16 패킹 형식 정렬, INT8 per-block 두 개 심사 중. 단일 배치 PR의 설명 패러다임도 정형화되었다——건별로 참조 구현과의 비트 단위 일치성, 컴파일 경계, 체크리스트 상태와 거부 시맨틱스를 명기하며, 「먼저 정확성을 증명하고, 그다음 성능을 논한다」. 이 리듬대로라면 나머지 FP8 per-block과 SmoothQuant 두 개의 안착이 다음 모니터링 기간의 관전 포인트다.

5.2 Ascend 950: 멀티 백엔드 서사가 「어댑테이션 저장소」에서 「메인 저장소 네이티브」로

Ascend 950 백엔드는 379개 파일, 약 8만 행이 추가된 PR로 메인 저장소에 직접 제출되었으며, 0.1.15 버전 상향과 같은 날 열렸다——TileLang의 「멀티 백엔드」가 미러 저장소 어댑테이션에서 메인라인 역량으로 업그레이드되고 있으며, 대조 기준도 화웨이 자체의 Torch NPU를 직접 선택했다. 서명에는 deepseek.com 이메일과 여러 커뮤니티 핵심 개발자가 함께한 총 10명의 Co-author가 보이며, 이는 Ascend 라인이 단일 지점 어댑테이션이 아니라 다자간 협업의 전면적 투입임을 보여준다. 냉정하게 봐야 할 점은: PR이 아직 머지되지 않았고, 규모가 막대하며, 성능 데이터는 현재 PR 내 차트 기준뿐이라는 것이다. 머지 이후 메인라인 안정성과 후속 유지보수 비용은 더 긴 주기의 관찰 지점이 될 것이다.

5.3 엔지니어링 수용력: 테스트 수 +21% 하의 CI 재구성

메인 브랜치 테스트 수는 4281에서 5174로 증가(+21%), pytest 소요 시간 +87%, 증분은 주로 목록 체계의 CPU 측 작업에서 비롯되었다——이는 바로 「200 연산자, 계약 우선」 전략의 직접적 비용이다. 당일 대응은 세 가지 엔지니어링화였다: GPU 스모크 8 동시 실행, 서명 검사 지연화, 목록 검증 단일화(PR당 두 차례 중복 검증 제거). 역량 확장기에 CI를 「충분함」에서 「규모 감당」으로 재주조하는 것은 이번 주 저평가된 인프라 서사다.

5.4 공백과 리스크 지점

첫째, 멀티 백엔드 분화가 계속된다: MetaX(09-24 이후), Moore Threads(09-17 이후), MLIR Ascend(09-24 이후)는 조용하고, 열기는 Ascend와 Hygon에 집중된다. 둘째, 메인 저장소의 「많이 열고 적게 머지」가 반전되지 않았다——이번 모니터링 기간 머지 2건, 신규 개설 7건, 열린 PR은 116건에 달하며, 리뷰 대역폭이 여전히 병목이다. Ascend 950 대형 PR의 머지 리듬이 이를 직접 검증할 것이다. 셋째, #1829 되돌려진 기능의 재제기, 0.1.15 정식 출판과 TileRT v0.1.6 릴리스 페이지 보충 티켓이 모두 미결이다. 넷째, 양자화와 샘플링 방식 커널의 검증은 현재 비트 단위 정렬과 단일 머신 기준에 국한되며, 엔드투엔드 모델 정확도 영향은 아직 공개 검증이 없다.


부록: 자료와 검증 설명

출처 검증 결과
tile-ai 조직(29개 저장소) 모니터링 기간 내 7개 저장소에 푸시 있음: tilelang(2 머지, 7 신규), TileOPs(17 머지), TileOPs-nightly(스냅샷 1건), tilelang-ascend(2 머지), tilelang-hygon(1 머지), TileFoundry(1 머지), TileOPs.github.io(1건)
메인 저장소 tilelang #3293, #3305 머지; #3303부터 #3309까지 신규 개설 7건(#3306 닫힘 미머지); 열린 PR 116건; 릴리스 브랜치와 버전 상향 브랜치가 모니터링 기간 내 활발
TileOPs 17건 머지(#2299부터 #2319 구간); 같은 기간 신규 개설 17건; 심사 중 4건(#2172, #2315, #2316, #2318); 양자화 군이 주역
tvm(같은 조직 하위 모듈 저장소) 모니터링 기간 내 커밋 없음
TileOPs-nightly 스냅샷 1건 b8f4329a35: 정확성 1030항목(스킵 2) 실패 0 오류 0; 벤치마크 1355항목(39개 스위트) 실패 0 오류 0
TileOPs.github.io 1건(#57 양자화, 샘플링 및 MLP 연산자 API 레퍼런스 편입)
국산 백엔드 5개 저장소 Ascend: 950 릴리스 PR #3308과 ascend 저장소 수정 2건; Hygon: #13 머지; MetaX(09-24 이후), Moore Threads(09-17 이후), MLIR Ascend(09-24 이후) 활동 없음
채택자와 커뮤니티 TileKernels, FlashQLA 모니터링 기간 내 푸시 없음; 4개 커뮤니티 저장소 신규 커밋 없음(cookbook은 자동화 브랜치 푸시만)
Google News / Hacker News / arXiv 중영문 쿼리 제로 히트(Ascend 950 히트는 모두 모니터링 기간 이전 주식시장과 거시 기사); HN은 본 주제와 무관; arXiv 최신은 여전히 07-24 TileSight

전체 출처 목록

tilelang_cookbook — https://github.com/RuneFang/tvm_tilelang_cookbook