모니터링 기간: 2026-10-23 07:00 ~ 2026-10-26 07:00 (베이징 시간, 72시간, 금요일부터 월요일까지 적용).

출처: GitHub tile-ai 조직 저장소별 점검(tilelang / TileOPs / TileFoundry / tilelang-ascend〔ascendc_pto〕/ tilelang-hygon / tilelang-sunrise / tilelang-metax / tilelang-musa / tilelang-mlir-ascend / TileRT / tilescale / DeepStack / 문서 사이트 3곳) + 병합 및 심사 중 실값 검색(is:merged와 is:open 두 그룹) + 신규 issue 전수 확인 + 커밋 단위 diff 및 릴리스 페이지 tag 점검 + PyPI 릴리스 상태 점검 + 채택 측 저장소 점검(TileKernels / FlashQLA) + 커뮤니티 신규 저장소 검색 + Google News 중영문 다중 쿼리(프록시 경유) + Hacker News + arXiv + 산업 매체 보도.


이번 호 인덱스

  • 오늘의 핵심: 72시간 내 78건 병합, 심사 중 업데이트 76건; TileOPs 첫 PyPI 릴리스가 마지막 한 항목만 남았고, CHANGELOG에 0.1.0 확정(10-26); 메인 저장소에서 심사 중인 TIRx 교체가 1043개 파일을 변경; Ascend 저장소 situ_glu 병합, 일일 테스트 하루 2903개 항목 전부 통과
    1. 핵심 프로젝트 진행 상황
      • 1.1 메인 저장소: partial-sync 네이밍 배리어 id가 두 저장 영역 간에 중복 번호 부여(#3643)(10-25)
      • 1.2 메인 저장소: clamp의 NaN 전파 하강이 롤백되어 T.clamp가 min/max로 복귀(#3628)(10-23)
      • 1.3 메인 저장소: int64 원자적 max/min과 AtomicStore의 int64, bf16, fp16 크래시(#3307)(10-23)
      • 1.4 메인 저장소: VectorizeLoop가 더 이상 루프 스텝을 조용히 무시하지 않음(#3345)(10-23)
      • 1.5 메인 저장소: NVRTC가 디스크 캐시에 적중한 후 자동 튜닝 결과가 다시 기록되지 않음(#3193)(10-23)
      • 1.6 심사 중: 독립 패키징된 TIRx로 내장 TVM 교체, 1043개 파일 변경(#3666)(10-25)
      • 1.7 심사 중: sm_100의 TMEM 해제에 CTA 배리어 누락, warp 특화 선행 문장 드리프트(#3645 / #3663 / #3664)(10-25)
      • 1.8 신규 결함: sm_120에서 리덕션 하강 실패, 세 가지 어텐션 예제가 공유 메모리 초과(#3647 / #3646)(10-25)
    1. 다중 백엔드 적응(Ascend / Hygon / 신규 CPU 및 ROCm)
      • 2.1 Ascend 메인 저장소: DeepGEMM 예제가 FP4×FP4 패킹 입력 지원(#3589)(10-23)
      • 2.2 Ascend 메인 저장소: DMA가 버퍼 베이스 오프셋 유지, 영역 경계 우선 승격, 주기 버퍼 전체 생명주기(#3627 / #3625 / #3606)(10-23)
      • 2.3 Ascend 메인 저장소: CI 이미지를 cann9.3.0 주간 업데이트 버전으로 상향(#3630)(10-23)
      • 2.4 Ascend 심사 중: E4M3의 UB→L1 복사, 온칩 메모리 오버플로 조기 거부(#3639 / #3655)(10-24~25)
      • 2.5 Ascend 심사 중: PTO 타깃이 기본적으로 tvm_ffi 실행 백엔드 사용(#3516)(10-24)
      • 2.6 Ascend 저장소: situ_glu 연산자 병합, Kimi K3 게이티드 활성화 정렬(#1891)(10-23)
      • 2.7 Ascend 저장소 심사 중: 희소 MLA, GLM-5.3 kpool 및 세 가지 정규화 예제(10-23~25)
      • 2.8 Ascend 저장소: 일일 테스트 2903개 항목 전부 통과, 다음 날 테스트 작업 실패 보고(#1941 / #1944)(10-25~26)
      • 2.9 Hygon: 메인라인 3건 병합, 레지스터 파이프라인 재심사 진입(#26 / #18 / #27)(10-23~25)
      • 2.10 신규 백엔드 심사 중: Intel AMX의 BF16/INT8 GEMM, ROCm의 FP4 및 E8M0(#3637 / #3665)(10-24~25)
    1. 생태계 및 채택 주체(TileOPs / TileFoundry / 배포판)
      • 3.1 TileOPs: 첫 릴리스 정리 8개 항목 중 7개 완료, CHANGELOG에 0.1.0 확정(#2738)(10-25)
      • 3.2 TileOPs: 공용 이름과 경로 일괄 확정, 패키징을 메타데이터로 변경하고 3.13 지원(#2741 / #2742 / #2746)(10-25)
      • 3.3 TileOPs: 연산자 작성 진입점을 authoring으로 통합, eager 호출을 단일 실행기로 수렴(#2743 / #2744)(10-25)
      • 3.4 TileOPs: 연산자 공유 시맨틱 일괄 명확화, 입력 검증은 매니페스트에서 생성(#2751 / #2758 / #2760)(10-25)
      • 3.5 TileOPs: 릴리스 문서, 서드파티 고지 및 pip 설치 진입점(#2753)(10-25)
      • 3.6 TileOPs 성능: GDN 프리필 파티션 폭을 호출 자체 길이에 따라 선택, KDA 네이티브 게이팅을 kernel에 통합(#2745 / #2683)(10-23~25)
      • 3.7 TileOPs 성능: 어텐션 상태 병합, 페이지드 GQA 및 indexer 테일 웨이브(#2739 / #2752 / #2735 / #2730)(10-24~25)
      • 3.8 TileOPs 성능: GEMM 테일 웨이브 좁은 타일, 핑퐁 BMM 계층적 스테이징(#2733 / #2734 / #2720)(10-23~25)
      • 3.9 TileOPs 성능: MoE의 A 박스 로딩과 네이티브 폭 WGMMA, 원소별 역수와 행 브로드캐스트(#2711 / #2715 / #2710 / #2725)(10-23~24)
      • 3.10 TileOPs 성능: 리덕션과 정규화를 16바이트 evict-last 읽기로 변경(#2757 / #2759 / #2748 / #2737)(10-25)
      • 3.11 TileOPs 정확성 및 CI: SSD 스캔 테일, GLA 세그먼트 언롤, H200 릴리스 검증(#2716 / #2750 / #2749 / #2718 / #2713)(10-23~25)
      • 3.12 TileFoundry: sm_89

의 E4M3 warp MMA 및 명령별 능력 검증(#261 / #262 / #264)(10-23~24)

  • 3.13 TileFoundry: cp.async 대상 레이아웃 주소 지정과 MLA 역방향 레이아웃(#263 / #260 / #257)(10-23)
  • 3.14 TileFoundry: core / nvidia / apple 세 개의 배포 패키지로 분리, 테스트 입력은 한 번만 로드(#268 / #269)(10-25)
  • 3.15 배포판: Sunrise 0.1.15+sunrise.1.2.0 릴리스 PR 머지(#9)(10-23)
    1. 커뮤니티, 튜토리얼 및 이벤트
      • 4.1 신규 저장소: PTO-ISA의 tilelang-puzzles-ascend, PTO의 Ascend 양자화 kernel 튜토리얼 작성(10-23)
      • 4.2 신규 저장소: 중국어 TileLang 연산자 면접 연습 사이트, 9개 모듈 18문항(10-23)
      • 4.3 커뮤니티 스킬 및 튜토리얼 저장소 계속 푸시, 문서 사이트 4건 첫 릴리스에 맞춰 개편(10-23~25)
      • 4.4 논의: TileScale 사용자가 사용 중인 TileLang 버전 업그레이드 가능 여부 문의(#72)(10-25)
    1. 트렌드 관찰

오늘의 핵심

72시간 동안 tile-ai 조직에 78건이 머지되었으며(TileOPs 51, tilelang 10, TileFoundry 10, 문서 사이트 4, tilelang-ascend 1, tilelang-hygon 1, tilelang-sunrise 1), 리뷰 중 업데이트 76건, 신규 오픈 issue 19건이 발생했다. 가장 중요한 항목은 릴리스 대기열에 있다: TileOPs의 “첫 릴리스 정리” 추적 이슈(#2738)는 8개 항목 중 7개가 완료되었고, 남은 것은 TestPyPI 시험 실행과 첫 tag뿐이다. 한편 CHANGELOG에는 10-25 23:17에 첫 정식 버전 기록 “0.1.0 - 2026-10-26”이 작성되었으며, 연산자는 tileops.<family>.<Op>로 임포트하고, tileops.backend와 tileops.authoring은 각각 백엔드 측과 서드파티의 연산자 작성을 위해 제공되며, 검증 구성은 SM90(H200), Python 3.12/3.13, PyTorch 2.13, TileLang 0.1.12, CUDA 13.2로 고정되었다고 선언했다. 그러나 PyPI에서 해당 패키지의 최신 버전은 여전히 2025-10-09의 0.0.1.dev2이며, 저장소에는 어떤 tag와 release도 없어 첫 릴리스는 “문서 준비 완료, 아티팩트 미업로드”의 마지막 단계에 머물러 있다. 메인 저장소의 10건 머지는 조용한 오류에 집중되었다: 두 저장 영역에 걸친 이름 있는 배리어 id 중복(#3643), T.clamp의 NaN 전파 하강이 롤백됨(#3628), int64 원자적 max/min 및 AtomicStore의 int64, bf16, fp16 크래시(#3307), VectorizeLoop가 루프 스텝을 누락(#3345). 리뷰 중 가장 주목할 만한 것은 #3666이다: 3rdparty/tvm을 삭제하고 프런트엔드와 하강 전체를 독립 패키징된 TIRx로 이전하며, 1043개 파일 +71428/-104176. Ascend 라인은 같은 날 Kimi K3 게이트 활성화 연산자 situ_glu를 머지했으며(#1891), 해당 저장소의 일일 테스트는 10-25에 2903개 항목 전부 통과를 보고했으나 10-26 새벽에 다시 테스트 작업 실패를 보고했다(#1944).


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

1.1 메인 저장소: partial-sync 이름 있는 배리어 id가 두 저장 영역 간에 중복(#3643)

10-25 14:30 머지, 2개 파일 +57/-1, #3642 수정. ThreadSync가 shared와 shared.dyn에 대해 각각 한 번씩 실행되는데, 매번 새로운 재작성기를 생성하고 각자 kFirstUsedBarrier부터 번호를 다시 매긴다. 두 번째 실행은 첫 번째 실행이 이미 재작성한 동기화를 건너뛰지만 해당 id가 이미 점유되었음을 알지 못하므로, 동일한 bar.sync id, count를 서로 겹치지 않는 두 스레드 그룹에 할당한다. 수정 방법은 번호 매기기를 두 번의 실행에 걸쳐 연속되게 하고, 영역 간 재사용에 대한 단언을 추가하는 것이다. 이러한 결함은 컴파일 시 오류를 보고하지 않고 대형 kernel에서만 간헐적으로 발생한다.

출처: https://github.com/tile-ai/tilelang/pull/3643

1.2 메인 저장소: clamp의 NaN 전파 하강 롤백, T.clamp가 min/max로 복귀(#3628)

10-23 16:51 머지. #3205 전체 체인을 롤백: tl.clamp 내장 삭제, 각 백엔드 하강 등록, codegen 분기 및 디바이스 측 보조 함수(Ascend 등록 포함)를 삭제하고, T.clamp(x, lo, hi)는 T.min(T.max(x, lo), hi)로 복원되었다. 이유는 추가적인 NaN 처리가 min/max의 간소화와 벡터화를 가로막기 때문이다. NaN 요구는 사라지지 않아 같은 날 별도로 #3605를 열어 T.clamp_symmetric으로 CUDA SM86+에서 단독 구현했으며, 역할 분담은 “T.clamp는 범용성 유지, 새 인터페이스는 시맨틱 유지”이다.

출처: https://github.com/tile-ai/tilelang/pull/3628

1.3 메인 저장소: int64 원자적 max/min 및 AtomicStore의 int64, bf16, fp16 크래시(#3307)

10-23 18:44에 병합됨. normalize_atomic_type은 #1716부터 int64_t를 unsigned long long으로 정규화하여 atomic add를 지원했는데, 그 결과 Atomic의 max/min 및 참조 형식이 int64에서 바로 크래시가 발생했고, AtomicStore도 동일하게 영향을 받았으며 추가로 bf16과 fp16에도 파급되었다. 수정은 연산별로 int64에 대해 별도 타입을 선택하고, AtomicStore는 독립적인 타입 분기를 사용하도록 했다. 이는 “하나의 연산을 위해 공용 정규화를 변경하여 나머지 연산까지 연쇄적으로 깨뜨린” 전형적인 회귀에 해당한다.

출처: https://github.com/tile-ai/tilelang/pull/3307

1.4 메인 저장소: VectorizeLoop가 더 이상 루프 스텝을 조용히 무시하지 않음 (#3345)

10-23 19:02에 병합됨, #3301에서 추적하는 F319에 해당. 벡터화기는 (loop_var, extent, body)만 받고 스텝은 전혀 전달되지 않았다: T.vectorized(0, 8, step=2)(반복 집합 0/2/4/6)가 전체 [0, 8)을 커버하는 연속 접근으로 하강되었다. 수정은 벡터화 진입 전에 비단위 스텝을 거부하고 진단을 제공한다. 이 하위 항목들의 공통된 특징은 프런트엔드가 하강 불가능한 표기를 받아들이고 백엔드가 다른 프로그램의 기계어를 내놓는다는 점이다.

출처: https://github.com/tile-ai/tilelang/pull/3345

1.5 메인 저장소: NVRTC가 디스크 캐시에 히트한 후 자동 튜닝 결과를 다시 쓰지 못함 (#3193)

10-23 15:04에 병합됨. NVRTC가 디스크에서 kernel을 로드할 때 adapter.libpath를 설정하지 않는데, 튜닝이 설정을 선택한 후에는 해당 필드로 캐시 kernel을 저장해야 하므로 히트할 때마다 AttributeError가 발생하고 결론이 버려져 사용자는 “매번 시작할 때마다 재조정 중”이라고 보게 된다. 수정은 캐시 로드 경로에서 libpath를 복원하여 새 컴파일 경로와 일치시키고, 캐시 재로드 및 부정 대조 테스트 케이스를 보강했다.

출처: https://github.com/tile-ai/tilelang/pull/3193

1.6 심사 중: 독립 패키징된 TIRx로 내장 TVM 교체, 1043개 파일 변경 (#3666)

10-25 19:16에 제출됨, 1043개 파일 +71428/-104176. 3rdparty/tvm 및 submodule 항목을 삭제하고(CUTLASS와 HIP 헤더는 유지), 프런트엔드, 네이티브 텐서 및 스코프 IR, 하강 pass, 백엔드 파이프라인, 실행 어댑터를 전체적으로 독립 빌드로 배포되는 tvm_tirx로 이전했으며, 호환 계층은 TileLang 내부로 한정하고 전역 tvm 별칭을 두지 않으며 두 번째 TIRx를 유지하지 않는다. 이는 지난 몇 기간의 “tvm fork 선행, 메인 저장소 후속”을 종착점까지 밀어붙인 것으로: 기반이 vendored 소스에서 외부 의존성으로 전환되어 이후 독립적으로 릴리스 및 롤백이 가능하며, 병합 영향 범위는 전체 저장소를 포괄한다.

출처: https://github.com/tile-ai/tilelang/pull/3666

1.7 심사 중: sm_100의 TMEM 해제에 CTA 배리어 누락, warp 특화 전치문 드리프트 (#3645 / #3663 / #3664)

세 건은 동일 기원으로, 모두 자동 warp 특화와 Blackwell의 새로운 저장소에 관한 것이다. #3645: sm_100에서 텐서 메모리 해제에 CTA 수준 배리어가 없어, 프로듀서 warp가 컨슈머의 tcgen05.mma/tcgen05.ld가 여전히 누산기를 읽고 있을 때 이를 해제할 수 있다. #3663: 특화가 T.serial 외부 루프 밖의 전치문을 루프 본문 안으로 옮겨, 한 번만 실행되어야 할 초기화가 매 라운드 재생되어 출력이 틀린다. #3664: if 안에 특화 파이프라인을 감싸고 if 뒤에 문이 있을 때, setmaxnreg 관련 하강이 ptxas를 실패하게 만든다. 세 건을 종합하면 “어떤 문이 어느 warp에 속하고 수명이 어디서 끝나는가”에 대한 완전한 의미 모델이 여전히 부재하다.

출처: https://github.com/tile-ai/tilelang/pull/3645, https://github.com/tile-ai/tilelang/issues/3663, https://github.com/tile-ai/tilelang/issues/3664

1.8 신규 결함: sm_120에서 리덕션 하강 실패, 세 개의 어텐션 예제가 공유 메모리 초과 (#3647 / #3646)

10-25 09:08 같은 날 두 건 보고. 전자는 gdn wy_fast_bwd_split가 sm_120에서 ReduceOp 하강 실패한 것으로——소스 인덱스가 스레드가 보유한 리덕션 세그먼트에 의존하여 기존 규칙의 적용 범위에 들지 않는다; 후자는 attention_sink, gqa_bwd, block_causal_attention_varlen 세 예제가 단일 블록 공유 메모리 상한 101376 바이트를 초과한 것이다. 대응 수정 #3662가 이미 열렸다: 디바이스 상한에 따라 더 작은 타일, 더 적은 파이프라인 단계와 128 스레드를 선택하고, 대형 디바이스는 기존 기본값을 유지한다. 소비자용 Blackwell의 용량 제약이 예제와 튜닝 테이블의 경성 경계가 되고 있다.

출처: https://github.com/tile-ai/tilelang/issues/3647, https://github.com/tile-ai/tilelang/issues/3646


2. 다중 백엔드 적응 (어센드 / 하이곤 / 신규 CPU 및 ROCm)

2.1 어센드 메인 저장소: DeepGEMM 예제 FP4×FP4 패킹 입력 지원 (#3589)

10-23 10:26에 병합됨. dense, M-grouped, K-grouped 세 가지 DeepGEMM 인터페이스에 패킹된 E2M1 FP4×FP4 입력을 활성화하고, 기존 MX GEMM 커널과 휴리스틱을 재사용하여 패킹된 바이트 저장소에서 논리 차원을 역산하고 FP4의 64 요소 정렬에 맞춤. 백엔드 측에서는 MX의 K 꼬리 패딩만 수정하고, 배치 생성자도 FP4를 허용함. 공개된 batch/einsum 인터페이스는 여전히 FP8을 유지하여 DeepGEMM-Ascend-Nightly와 정렬하며, FP8×FP4 역양자화는 후속으로 남겨둠.

출처: https://github.com/tile-ai/tilelang/pull/3589

2.2 어센드 메인 저장소: DMA 버퍼 기본 오프셋 보존, 영역 경계 우선 승격, 주기 버퍼 완전한 생명주기 (#3627 / #3625 / #3606)

세 건 모두 10-23에 병합되었으며, 모두 레이아웃과 생명주기 수정임. #3627: DMA 계획에서 Buffer.elem_offset을 무시하여, UB 별칭이 elem_offset=256으로 생성될 때 T.copy(별칭, out)이 실제로는 0번 요소부터 읽는 문제; 수정 방법은 기본 오프셋을 주소에 포함하고 스트라이드 슬라이싱(중첩 포함)에서 부모 오프셋을 보존하는 것임. #3625: 영역 최솟값과 길이를 Int64Promoter로 승격한 후 반개구간을 생성하여, int32 형변환이 동적 꼬리 경계를 가려 중첩 증명이 Z3 예산을 소진하고 인플레이스 영속 RoPE에 불필요한 교차 반복 의존성을 도입하는 것을 방지함. #3606: 하위 버퍼 생명주기 요약이 접근을 완전히 커버해야만 승격 가능하며, 외부 프리로드된 값이 전체 부모 주기 동안 생존하여 중첩 및 수동 파이프라인에서의 재사용이 대기자를 덮어쓰는 것을 방지함.

출처: https://github.com/tile-ai/tilelang/pull/3627, https://github.com/tile-ai/tilelang/pull/3625, https://github.com/tile-ai/tilelang/pull/3606

2.3 어센드 메인 저장소: CI 이미지 cann9.3.0 주간 업데이트 버전으로 승격 (#3630)

10-23 19:20에 병합, CI만 수정: ascend 작업 테스트 컨테이너를 cann9.3.0-weekly.20260930에서 cann9.3.0-weekly.20261021-ubuntu22.04-py3.12로 올림. 이는 어센드 측 전체 회귀 테스트 케이스가 실제로 어떤 CANN 런타임 버전으로 검증되는지를 결정하며, 해당 라인 결론의 유효 기간을 판단하는 전제 조건임.

출처: https://github.com/tile-ai/tilelang/pull/3630

2.4 어센드 심사 중: E4M3의 UB→L1 복사, 온칩 메모리 오버플로 조기 거부 (#3639 / #3655)

#3639는 Ascend 950을 위해 float8_e4m3fn의 UB→L1 복사를 활성화: ND 입력은 기존 scatter/post-copy 파이프라인을 통해 재배열되고, 사전 패킹된 NZ는 직접 전송되며, footprint 및 지연 분석에 FP8 요소 너비를 보충함. #3655는 MergeUBAllocations가 하강 단계에서 UB, L1, L0A, L0B, L0C 각각의 용량에 따라 계획된 점유를 검증하고 진단을 보고하도록 하여, 범위를 벗어난 할당을 생성하지 않도록 함 — 원인은 두 개의 독립 루프가 각각 합법적으로 32KB L0A 타일의 두 버전을 선택하고 병합 후 초과된 것임. 온칩 메모리 관리는 런타임 오류 보고에서 컴파일 시점 거부로 전환 중임.

출처: https://github.com/tile-ai/tilelang/pull/3639, https://github.com/tile-ai/tilelang/pull/3655

2.5 어센드 심사 중: PTO 타깃 기본적으로 tvm_ffi 실행 백엔드 사용 (#3516)

10-24 업데이트된 심사 중 변경: pto에 tvm_ffi를 지원하고 기본으로 설정하며, execution_backend="auto"가 이제 tvm_ffi로 해석됨. 공유 호스트 codegen이 MakePackedAPI와 C 호스트 빌드를 담당하고, 어센드 런타임 모듈은 aclrtLaunchKernelWithHostArgs를 통해 PTODSL로 컴파일된 aibin을 실행하며, AscendC 경로와 일치함. 메인 저장소 CPU 측 #3634(TVM-FFI로 통일, CPU 전용 Cython 래퍼 제거)와 동일한 방향: 실행 백엔드가 간소화되고 있음.

출처: https://github.com/tile-ai/tilelang/pull/3516

2.6 어센드 저장소: situ_glu 연산자 병합, Kimi K3 게이팅 활성화와 정렬 (#1891)

10-23 16:04에 병합되었습니다. 의미론과 dtype/shape/attr 제약을 CANN ops-nn의 activation/situ_glu와 항목별로 정렬했으며, 정밀도 기준은 CPU fp64의 PyTorch 골드 스탠다드를 사용합니다. 순수 Vector 단일 kernel로, 호스트는 dim에 따라 입력을 (rows, cut*inner) 제로 카피 뷰로 축 합치며, 마지막이 아닌 차원의 분할은 스트라이드를 넘지 않습니다. 연산자는 Kimi K3 Stable LatentMoE의 전방 게이팅 활성화에 대응하며, 지난 회차의 situ_glu 그래디언트, 희소 MLA와 함께 Ascend 저장소의 연산자 목록이 구체적인 대화 모델 구조에 따라 하나씩 확장되고 있습니다.

출처: https://github.com/tile-ai/tilelang-ascend/pull/1891

2.7 Ascend 저장소 심사 중: 희소 MLA, GLM-5.3 kpool과 정규화 예제 세 건 (10-23~25)

심사 중인 24건 중 연산자 측 대표는 sparse_mla_fwd(#1929, DSA 희소 MLA 전방, varlen 패킹 랜덤 행 gather + 온라인 softmax + QK/PV 이중 GEMM, fast 경로는 H=128, G=1, dim/tail=(512,64) 등 조건으로 제한)와 GLM-5.3 kpool 압축(#1910, 풀 내 차원별 softmax 풀링, BF16 경계 통과, Hadamard-128 회전, E4M3 양자화 및 행과 scale을 페이지드 cache로 산란)입니다. 예제 측에서는 rms_norm(#1558), NMS(#1748, 쌍별 IoU를 1 bit로 압축해 uint16 비트맵에 저장, N=4096일 때 2MB로 64MB 행렬 대체)와 GroupNorm(#1607)을 보강했습니다.

출처: https://github.com/tile-ai/tilelang-ascend/pull/1929, https://github.com/tile-ai/tilelang-ascend/pull/1910, https://github.com/tile-ai/tilelang-ascend/pull/1748

2.8 Ascend 저장소: 일일 테스트 2903건 전부 통과, 다음 날 테스트 작업 실패 보고 (#1941 / #1944)

봇 계정이 10-25 05:15에 일일 테스트 2903건 전부 통과, 통과율 100%를 보고했습니다. 10-26 04:30에는 다시 workflow의 test 작업 실패를 보고했으며, 10-24 05:08에도 별도의 실패 기록이 있습니다. #1944에는 실패 케이스 상세가 첨부되지 않았으나, 시계열로 볼 때 일일 전체 테스트는 이미 2900건 규모로 안정화되어 회귀 게이트 역할을 담당하고 있으며, 한 번의 실패는 특정 신규 병합이나 환경 변경이 기존 케이스를 중단시켰음을 의미합니다.

출처: https://github.com/tile-ai/tilelang-ascend/issues/1941, https://github.com/tile-ai/tilelang-ascend/issues/1944

2.9 Hygon: 메인 브랜치 3건 병합, 레지스터 파이프라인 재심사 진입 (#26 / #18 / #27)

메인 브랜치는 10-23 17:57에 세 건을 한꺼번에 반영했습니다(작성자 날짜 10-14, 10-16, 10-20, 일괄 병합): MLS 슬롯과 선형 DS 읽기 수정, CI의 DTK 26.04/26.10 지원, wave64 shuffle 및 벡터화 BF16 저장으로 전환. 병합된 #26은 추가로 FP4의 MLS warp 분할 핸들을 수정했습니다. 심사 중인 #18은 레지스터 파이프라인을 다시 도입하며(공유 메모리 파이프라인과 병존 가능, 파이프라인 단계별로 commit과 barrier 삽입), warp 수가 4를 초과할 때 warp diverge를 활성화하여 example_gemm을 ROCm에 필적하는 수준으로 끌어올리는 것을 목표로 하며 10-25 06:00에 업데이트가 있었습니다. #27은 내장 저하, 정밀도 및 정수 벡터 codegen을 처리합니다. 지난 회차의 “병합 브랜치에서 enable_register_pipeline 제거”와 대조하면, 동일한 기능이 PR 형태로 다시 구현되고 있습니다.

출처: https://github.com/tile-ai/tilelang-hygon/pull/26, https://github.com/tile-ai/tilelang-hygon/pull/18, https://github.com/tile-ai/tilelang-hygon/pull/27

2.10 신규 백엔드 심사 중: Intel AMX의 BF16/INT8 GEMM, ROCm의 FP4와 E8M0 (#3637 / #3665)

#3637 CPU 경로에 Intel AMX 백엔드 추가: 타깃 탐지, 컴파일 옵션, GEMM 디스패치, BF16 및 INT8 커널은 AVX-512/VNNI 패킹과 정렬 재사용 임시 저장소를 사용하며, 실행 측은 1코어, 40코어, 120코어에 적응하는 OpenMP를 사용한다. 이전에 TileFoundry는 Apple AMX에서 프리필 예제를 이미 실행했으며, 이번 커밋은 AMX를 메인 저장소의 CPU 경로에 직접 통합한다. #3665는 HIP 템플릿의 두 가지 결함을 수정한다: T.cast(x, T.float4_e2m1fn)이 HIP에서 (fp4_e2_t)x로 출력되는데, 해당 타입은 명시적 생성자만 있어 부동소수가 정수로 잘려 저장된다(1.0이 0.5로, 2.0이 1.0으로). 동시에 E8M0 타입을 보완하고 gfx94x에서 소프트웨어 FP4를 활성화한다.

출처: https://github.com/tile-ai/tilelang/pull/3637, https://github.com/tile-ai/tilelang/pull/3665


3. 생태계와 채택자 (TileOPs / TileFoundry / 배포판)

3.1 TileOPs: 첫 릴리스 정리 8개 항목 중 7개 완료, CHANGELOG에 0.1.0 확정 (#2738)

10-25 10:45에 추적 이슈 “Release clean-up”을 생성했으며, 8개 항목 중 7개를 체크했다: 네이밍, 패키징 및 저장소 파일, Python 3.13, 공개 API 및 확장점, 연산자 동작, 입력 검증, 문서 사이트. 유일하게 미완료된 항목은 “제3자 고지, PyPI 설치 문서, dev 의존성 그룹, CHANGELOG 및 릴리스 단계, TestPyPI 시험 실행 및 첫 tag 생성, 유지관리자 수행”이다. CHANGELOG에는 동시에 첫 버전 기록 “0.1.0 - 2026-10-26”이 반영되었으며, 최초 릴리스임을 명시하고 docs/stability.md에서 공개 인터페이스가 무엇인지 설명한다. PyPI 확인 결과: tileops 최신 버전은 여전히 2025-10-09의 0.0.1.dev2이다. GitHub 확인 결과: tag 없음, release 없음. 별도로 #2756에서 “Post-release clean-up”을 미리 생성했다.

출처: https://github.com/tile-ai/TileOPs/issues/2738, https://github.com/tile-ai/TileOPs/blob/main/CHANGELOG.md

3.2 TileOPs: 공개 이름과 경로 일괄 확정, 패키징 메타데이터 변경 및 3.13 지원 (#2741 / #2742 / #2746)

#2741은 739개 파일 +6452/-6740의 일괄 이름 변경이다: tileops, 각 연산자 패밀리 모듈, tileops.backend, tileops.manifest, tileops.trace 및 새로 추가된 tileops.authoring이 공개 표면이 되고, 나머지는 _ops, _kernels, _utils, _perf로 하향되었다. tileops.ops 지연 내보내기 계층을 삭제하여 하나의 연산자에 하나의 임포트 경로만 남겼다. #2742는 패키징 메타데이터를 수정했다(bench를 extra에서 dependency group으로 이동, dev 중복 제거 및 pre-commit과 pytest-timeout 보충, Linux/CUDA 13/Python 3 선언, 패키지에 py.typed 포함). CHANGELOG와 결함 템플릿을 새로 추가했다. #2746은 requires-python을 >=3.12로 정하고 상한을 제거했으며, Python 3.13.15 + torch 2.13.0 + PyPI版 tilelang 0.1.12의 H200에서 전체 43개 패키징 테스트 케이스를 통과시켰다.

출처: https://github.com/tile-ai/TileOPs/pull/2741, https://github.com/tile-ai/TileOPs/pull/2742, https://github.com/tile-ai/TileOPs/pull/2746

3.3 TileOPs: 연산자 작성 진입점을 authoring으로 통합, eager 호출을 단일 실행기로 수렴 (#2743 / #2744)

#2743은 확장점을 정의한다: 저장소 외부 코드는 tileops.authoring.Op를 서브클래싱하여 연산자를 작성하고, 매니페스트 항목을 클래스 속성 spec으로 선언하며, 클래스 생성 시 검증기가 검사한다. 이를 통해 시그니처 검사, 형상 추론, roofline 및 컴파일 경계를 얻는다. tileops 내부 클래스만 동일한 이름의 항목을 가져오고 백엔드가 직접 서비스한다. #2744는 매번 eager 호출 시 반복적으로 추론하던 시그니처 판정, 호출 사양, 커널 프로그램 및 호출 기록을 “특수화당 하나의 plan”으로 수렴하여, 동시성 상황에서 한 번만 해석하고 빌드 실패 시 이미 게시된 튜닝 구성을 롤백한다. 연산자 작성자와 호출자의 인터페이스가 모두 암묵적 관례에서 명시적 계약으로 바뀐다.

출처: https://github.com/tile-ai/TileOPs/pull/2743, https://github.com/tile-ai/TileOPs/pull/2744

3.4 TileOPs: 연산자의 공유 의미를 한 번에 명확히 기술, 입력 검증을 매니페스트에서 생성 (#2751 / #2758 / #2760)

#2751과 #2758은 ‘개념마다 하나의 규약’을 문서로 확정하고 연산자별로 실행에 옮겼다. 모든 attention의 LSE를 float32 자연로그로 통일하고, 밀집 [B,H,S]와 패킹된 [H,T]를 해당 레이아웃대로 저장하며(GQADenseBwdOp는 이전에 밑이 2인 로그를 읽었다), 가시 키가 없는 행은 0과 -inf를 출력한다. out=은 일률적으로 키워드 전용 인자로 하고 해당 객체를 반환하며, 역방향 연산자는 대응하는 순방향과 짝을 이룬다. #2760은 validate_inputs의 패킹 오프셋 검사를 연산자별 수작업에서 매니페스트 생성 방식으로 바꾸고, 아울러 네 개 선형 attention 연산자가 파라미터 위치로 cu_seqlens를 가져오던 잠재 위험을 수정했다.

출처: https://github.com/tile-ai/TileOPs/pull/2758, https://github.com/tile-ai/TileOPs/pull/2760

3.5 TileOPs: 문서·제3자 고지·pip 설치 진입점 릴리스 (#2753)

11개 파일 +103/-32: THIRD_PARTY_NOTICES에 Qwen 팀 코드의 MIT 고지를 수록했으며(두 개의 GDN 프리필 kernel이 해당 코드를 개작한 것임), 라이선스 파일로서 wheel과 sdist에 포함해 릴리스한다. README 첫 화면은 pip install tileops로 바꾸고 검증된 구성을 제시했다(Linux, Python 3.12/3.13, PyTorch 2.13, TileLang 0.1.12, CUDA Toolkit 13.2와 nvcc, SM90). 커밋 설명은 tag를 달기 직전에 병합할 것을 요구하며, 트래킹 이슈의 마지막 항목과 서로 선후 관계를 이룬다.

출처: https://github.com/tile-ai/TileOPs/pull/2753

3.6 TileOPs 성능: GDN 프리필 파티션 폭을 호출 자체 길이로 선택, KDA 네이티브 게이팅을 kernel에 반영 (#2745 / #2683)

#2745는 GDNFwdOp 프리필을 수정했다. 이전에는 파티션 폭이 key head 수를 따랐기에 q35-397b-tp8-32768은 각 walk를 64구간으로 나눠 4웨이브에 걸쳤고, 야간 벤치마크는 FlashInfer의 0.988에 그쳤다. 호출 자체의 시퀀스 길이와 value head로 파티션을 산출하도록 바꾼 뒤 bf16은 289.3에서 200.6마이크로초(FlashInfer의 1.434배), fp16은 285.0에서 195.2마이크로초(1.468배)로 줄었다. #2683은 KDA 순방향이 원시 게이팅(선택적 dt_bias와 유계 게이팅 포함)을 직접 받도록 했으며, 16개 파일 +3095/-458, 28개 워크로드를 추가하고 모든 KDAFwdOp 행에서 FLA 베이스라인을 초과했으며, 강한 감쇠 chunk는 쌍별 Gram 항으로 계산해 NaN을 피했다.

출처: https://github.com/tile-ai/TileOPs/pull/2745, https://github.com/tile-ai/TileOPs/pull/2683

3.7 TileOPs 성능: 병합 attention 상태·페이지드 GQA·indexer 테일 웨이브 (#2739 / #2752 / #2735 / #2730)

#2739는 MergeAttentionStatesFwdOp에 무행 가드 프로그램과 병합 후 일회성 LSE 저장을 추가했다. 이전에는 llama-70b-cascade에서 FlashInfer 네이티브 merge_state의 0.985, 나머지 두 행은 0.988에서 0.999에 그쳤다. #2752는 자연로그와 밑이 2인 로그(exp2/log2)를 모두 지원하게 하고, 단일 웨이브 16행 그리드를 512스레드 CTA가 64행을 처리하도록 바꿨다. #2735는 qwen35의 RoPE 임시 저장 오버플로를 수정했는데, head dim 256의 FP8 캐시를 단일 warpgroup 64행 타일에서 이중 warpgroup 128행으로 바꾸고(이전에는 가장 빠른 비교 구현의 0.16에서 0.57배에 그쳤다), flat dim-64 행은 3-컨슈머 warpgroup으로 변경했다. #2730은 FP8 indexer의 마지막 한 웨이브 미만 블록을 2의 거듭제곱으로 최대 16개 CTA에 분할했으나, 실측으로 긴 행은 ptxas의 FMNMX 정렬 때문에 오히려 2~7퍼센트 느려졌다.

출처: https://github.com/tile-ai/TileOPs/pull/2739, https://github.com/tile-ai/TileOPs/pull/2735, https://github.com/tile-ai/TileOPs/pull/2730

3.8 TileOPs 성능: GEMM 테일 웨이브 좁은 타일, 핑퐁 BMM 계층 스테이징 (#2733 / #2734 / #2720)

#2733 영속화 그리드의 마지막 물결을 겨냥: 가장 바쁜 CTA의 타일 열 수가 전체 시간을 결정하며, ds-v3의 여러 행이 이전에 cuBLASLt 또는 quack보다 0.6~2.3퍼센트포인트 뒤처졌음. 개선 방법은 넓은 타일을 다 돌린 뒤 더 좁은 타일로 마지막 행을 처리하고, 가장 바쁜 CTA 열 수가 최소가 되도록 레이아웃을 선택하며, 176 너비 타일에 5단 링과 이중 버퍼 epilogue를 적용하는 것임. #2734는 BmmPingPongKernel의 저장이 두 버퍼를 번갈아 계층화하도록 함(K가 16단 이상이면 16열, 미만이면 32열을 취함)으로써 마지막 타일의 epilogue가 cast와 store를 직렬로 기다리는 것을 피함. #2720은 두 물결 이내의 짧은 K 배치 GEMM에서 128×128 핑퐁 타일을 사용하여 타일 교체와 epilogue가 다른 주 루프 아래에 숨겨지도록 함.

출처: https://github.com/tile-ai/TileOPs/pull/2733, https://github.com/tile-ai/TileOPs/pull/2734, https://github.com/tile-ai/TileOPs/pull/2720

3.9 TileOPs 성능: MoE의 A 박스 적재와 원생 너비 WGMMA, 원소별 역수와 행 브로드캐스트(#2711 / #2715 / #2710 / #2725)

#2711은 디코딩 단계 MoE를 수정함: 한 전문가가 1~7행만 보유하지만 64행 전체 블록 TMA 적재가 다음 전문가의 행까지 L2로 끌어와, gpt-oss-120b-decode의 gate/up이 이로 인해 L2 제약을 받음(3.56GB DRAM 읽기가 6.11GB L2 트래픽에 대응). 128바이트 K 원자 단위로 16행 A 박스를 잘라 활성 행이 도달 가능한 박스만 발행하도록 변경. #2715는 192와 224 너비 템플릿 타일이 각각 16K의 WGMMA를 하나씩 발행하도록 함—이전에는 너비가 256으로 나누어떨어지지 않는 T.wgmma_gemm이 gcd(width,256) 너비로 여러 개로 쪼개져 각각 A를 다시 읽어 27~35퍼센트포인트 느렸음. #2710은 역수를 근사 명령 하나와 스레드당 벡터 하나로 변경(이전에는 1600만 행 fp16/bf16에서 torch.compile보다 1~1.4퍼센트포인트 뒤처졌음). #2725는 그리드가 한 물결만 차지할 때 한 스레드가 네 행을 처리하고 bias 벡터 하나를 공유하도록 함.

출처: https://github.com/tile-ai/TileOPs/pull/2711, https://github.com/tile-ai/TileOPs/pull/2715, https://github.com/tile-ai/TileOPs/pull/2710

3.10 TileOPs 성능: 리덕션과 정규화를 16바이트 evict-last 읽기로 변경(#2757 / #2759 / #2748 / #2737)

#2759는 한 번만 읽는 16바이트 적재를 일괄적으로 tileops::load16_evict_last로 보냄(argreduce 공유 메모리 세그먼트, 스레드별 전체 벡터 argreduce, InstanceNorm 행 정규화, 8MiB 이내 행 폴딩). 임계값을 넘을 때만 evict-first로 회귀. #2757은 leading-axis 리덕션의 하향 pass를 1024 스레드가 각각 16바이트 벡터 하나를 보유하도록 변경하여, ProdFwdOp가 (4,128,4096) fp16의 dim 0에서 3.33마이크로초에서 torch.compile과 동일한 수준으로 낮춤. #2748은 LayerNorm 스레드 수를 행 수에 따라 선택하도록 함(8192 이상이고 SM당 한 블록 이하일 때 256, 그렇지 않으면 128). 동일 연산자가 디코딩과 프리필을 위해 각각 한 번씩 컴파일됨. #2737은 AdaptiveMaxPool2d의 튜닝을 중단—CUDA 이벤트 타이밍으로 선택된 구성이 회차 간에 1.7배 느려질 수 있어, 파생 기본 구성을 실행하고 레지스터 버전 전역 풀링 kernel을 추가함.

출처: https://github.com/tile-ai/TileOPs/pull/2759, https://github.com/tile-ai/TileOPs/pull/2757, https://github.com/tile-ai/TileOPs/pull/2748

3.11 TileOPs 정확성과 CI: SSD 스캔 테일, GLA 세그먼트 전개, H200 릴리스 검증(#2716 / #2750 / #2749 / #2718 / #2713)

#2716은 CUDA codegen 전에 SSD chunk 스캔 파이프라인의 고정 테일을 전개하여, 비동기 복사 대기 인자에 남아 있던 산술 표현식으로 인한 정수 언더플로 컴파일 오류를 수정(Mamba 용례가 이전에는 컴파일되지 않았음). #2750은 패킹된 GLA의 두 세그먼트 파이프라인을 명시적으로 전개하여 최신 CUDA 코드 생성기가 기호화된 대기 카운트를 거부하는 것을 피함. #2749는 벡터화된 인과 컨볼루션 프리필 적재 전에 선택적 bias 저장을 정렬—연속 뷰가 정렬되지 않은 시작 주소를 유지할 수 있음. #2718은 H200 릴리스 검증을 강화: 용례 누락, 보고서 비어 있음, 테스트 미성공 또는 전체 행 미검증은 모두 실패로 판정하며, 매 설치 회차 검증은 독립 캐시를 사용하고 CUDA Graph는 23개 테스트, 9개 연산자를 커버함. #2713은 야간 벤치마크가 전용 GPU에서 직렬로 수집되도록 함—이전에는 사전 예열이 다른 벤치마크가 전용 디바이스를 점유할 때 CUDA 컨텍스트를 초기화하여 어느 야간에 1061개 용례가 오류를 보고했음.

출처: https://github.com/tile-ai/TileOPs/pull/2716, https://github.com/tile-ai/TileOPs/pull/2718, https://github.com/tile-ai/TileOPs/pull/2713

3.12 TileFoundry: sm_89의 E4M3 warp MMA 및 명령별 기능 검증 (#261 / #262 / #264)

#261은 sm_89에서의 FP8 warp MMA(mma.sync의 m16n8k32 E4M3 형식)를 선언한다: 앞서 #259에서 구축한 sm_89 타깃은 BF16만 선택할 수 있었고, 레지스터 내 E4M3 곱은 이를 수행할 명령이 없었다. #262는 기능 검증을 「MMA만 검사」에서 모든 명령으로 확장한다: sm_89에서 bulk copy, TMA copy 또는 mbarrier 트랜잭션 배리어 형식은 이전에는 검증을 통과하고 codegen이나 ptxas 단계에서야 실패했으며 오류 메시지에 누락된 하드웨어를 언급하지 않았는데, 수정 후 admit_fields는 접속 단계에서 목표 기능과 명령별로 대조한다. #264는 16×8×128의 E4M3 곱으로 해당 atom을 스케줄링부터 GPU까지 실행하고, K 슬라이스를 공유 메모리를 거쳐 임시 저장한다 — 바로 이 테스트 케이스가 이후 #263에서 수정한 cp.async 주소 지정 결함을 드러냈다.

출처: https://github.com/tile-ai/TileFoundry/pull/261, https://github.com/tile-ai/TileFoundry/pull/262, https://github.com/tile-ai/TileFoundry/pull/264

3.13 TileFoundry: cp.async 대상 레이아웃 주소 지정 및 MLA 역방향 레이아웃 (#263 / #260 / #257)

#263은 ops::copy_async가 대상은 원소 인덱스로 주소 지정하고 소스는 벡터로 순회하는 불일치를 수정한다: 스레드 슬라이스가 여러 벡터를 포함하고 연속 세그먼트가 첫 번째 패턴에 있지 않을 때, 후속 벡터가 잘못된 주소로 떨어졌다 — sm_89 E4M3 GEMM에서 스레드당 슬라이스가 (2,1,1,8), 스트라이드가 (256,-,-,1)일 때 두 번째 8바이트 벡터가 256번째 바이트가 아닌 4번째 바이트에 기록되었다. #260은 MLA 역방향의 레이아웃과 분석 격차를 마무리하고(작성자의 아핀 매핑 유지, CuTe 프리미티브로 슬라이싱과 명령 프로젝션 수행, StMatrix와 누산식 CopyReduceAsyncTensor 시맨틱 보강), #251을 닫는다. #257은 하강 후 TIR 메모리 접근 경로의 세 가지 결함을 수정한다: ops::reduce가 스레드 축을 cta 레벨로 오판하고, warps_per_group을 전체 그리드 인스턴스 수로 취하며(RMSNorm 튜토리얼에서 8이 아닌 256), 크로스 warp 워크스페이스 인덱스 읽기가 범위를 벗어난다.

출처: https://github.com/tile-ai/TileFoundry/pull/263, https://github.com/tile-ai/TileFoundry/pull/260, https://github.com/tile-ai/TileFoundry/pull/257

3.14 TileFoundry: core / nvidia / apple 세 배포 패키지로 분리, 테스트 입력 한 번만 로드 (#268 / #269)

#268은 739개 파일 +5489/-4518의 구조 조정이다: 코어와 벤더 배포판을 분리하고 하나의 버전 계약을 공유하며, CUDA와 AMX의 구현, 하드웨어 문서, 스펙, 템플릿, 런타임 헤더 파일을 각각 패키징하고, 발사와 링크 구현은 target 바인딩을 통해 해석되며, 설치된 타깃은 코어 초기화 이후에 로드된다; 모델 리소스는 target에, 공유 인과 언어 모델 오케스트레이션은 core에 귀속되며, 리뷰 후 순감 274줄이다. #269는 테스트 소요 시간(메인 314~509초, 런타임 헤더 파일 변경 시 651초)을 겨냥해 동일 입력을 CLI 로더를 통해 한 번만 실행한다 — 이전에는 하나의 스케줄링 HIR fixture가 12번 로드되고 9번 검증되며 패밀리별로 한 번씩 분석되었고, 테스트 전용 로더가 CLI에서는 거부할 프로그램을 받아들였다.

출처: https://github.com/tile-ai/TileFoundry/pull/268, https://github.com/tile-ai/TileFoundry/pull/269

3.15 배포판: Sunrise 0.1.15+sunrise.1.2.0 릴리스 PR 머지 (#9)

10-23 10:43 머지. 해당 PR은 Sunrise 배포판을 0.1.15+sunrise.1.2.0으로 업데이트하고, TileLang 0.1.15 및 함께 리뷰된 TileOPs, TileKernels, TVM, tvm-ffi 변경 사항을 포함하며, 소스 임포트와 머지 적응을 별도로 커밋하고, 최종적으로 TANG 백엔드 wheel에 적응하며 슬라이스 GEMM 회귀를 수정한다(두 누산기 플래그 모두 공개 템플릿으로 검증하고, stride, origin, offset 단언을 유지). 지난 호에서 해당 PR을 S2에 설치한 후 import 스모크가 tangGetDeviceCount에서 실패한 것을 기록했는데, 이번 모니터링 기간에 해당 저장소에는 후속 커밋이 없었고 해당 실패에 대한 수정 기록은 확인되지 않았다.

출처: https://github.com/tile-ai/tilelang-sunrise/pull/9


4. 커뮤니티, 튜토리얼 및 이벤트

4.1 신규 저장소: PTO-ISA의 tilelang-puzzles-ascend, PTO의 Ascend 대상 양자화 kernel 튜토리얼 작성 (10-23)

10-23 푸시, 자체 설명은 “PTO의 Ascend 대상 양자화 kernel 튜토리얼 및 연습”이며 형식은 tile-ai/tilelang-puzzles를 따름. 같은 조직의 tilelangGym은 서로 다른 벤치마크와 마이크로벤치마크가 PTO 하강에서 보이는 성능 민감도를 측정하는 데 사용되며, 지난 호에 이미 수록됨. 두 저장소는 모두 PTO-ISA 조직에 속하며, 메인 저장소에서 심사 중인 PTO 벡터화(#3512, T.Parallel을 PTO VMI 명령으로 벡터화)와 함께 “컴파일러—연습—민감도”의 3종 세트를 형성하여, PTO라는 Ascend 명령 라인이 개발자 진입점을 보완하고 있음을 보여줌.

출처: https://github.com/PTO-ISA/tilelang-puzzles-ascend

4.2 신규 저장소: 중국어 TileLang 연산자 면접 연습 사이트, 9개 모듈 18문제 (10-23)

10-23 저장소 생성, 자체 설명은 중국어 연산자 면접 연습 사이트: 9개 모듈, 18문제, 21개 교육 예제, 인터랙티브 연습, 문제 해설 및 성능 분석 포함. 이전까지 커뮤니티 콘텐츠는 주로 cookbook과 스킬 패키지였는데, “면접/과정 기준으로 조직된” 산출물이 처음 등장함.

출처: https://github.com/zhachar14h-cell/tilelang-operator-interview

4.3 커뮤니티 스킬 및 튜토리얼 저장소 계속 푸시, 문서 사이트 4건 메인 저장소 개편 따라 개정 (10-23~25)

sablin39/tilelang-cuda-skills(146 스타), RuneFang/tvm_tilelang_cookbook(36 스타), cc-c122/TileLang-Remote-Autotuning-Agent(10-24 푸시)는 계속 업데이트됨; kevin3113/models-tilelang은 10-23 저장소 생성, 해당 작성자는 같은 시기 메인 저장소에 Ascend 크로스코어 동기화의 schedmode 지원을 제출(#3614). 문서 측면에서 TileOPs 문서 사이트 4건이 메인 저장소 개편을 따름: #79는 이미 은퇴한 GQAPrefillPagedWithKVCacheFwdOp를 삭제하고 홈페이지에 릴리스 공지를 게시, #81은 26개 연산자 클래스 이름 변경 및 내부 패키지에 언더스코어 추가를 따름, #82는 공용 API 계약 및 bench 의존성 그룹 변경을 따름, #83은 최초 PyPI 릴리스를 위해 홈페이지와 설치 페이지를 정리.

출처: https://github.com/tile-ai/TileOPs.github.io/pull/83, https://github.com/sablin39/tilelang-cuda-skills, https://github.com/cc-c122/TileLang-Remote-Autotuning-Agent

4.4 논의: TileScale 사용자가 사용 중인 TileLang 버전 업그레이드 가능 여부 문의 (#72, 10-25)

10-25 05:17에 한 사용자가 tile-ai/tilescale에서 TileScale이 의존하는 TileLang 버전을 업그레이드할 수 있는지 질문. 해당 저장소의 마지막 푸시는 08-25에 멈춰 있으며, 문서와 예제는 여전히 이전 버전을 가리킴. 이런 질문은 통상 업스트림 인터페이스가 빠른 이름 변경기에 접어든 뒤에 나타남—이번 모니터링 기간 메인 저장소에서 심사 중인 TIRx 교체(#3666)와 TileOPs의 26개 연산자 클래스 이름 변경은 모두 다운스트림의 버전 추종 비용을 증폭시킴.

출처: https://github.com/tile-ai/tilescale/issues/72


5. 트렌드 관찰

릴리스 엔지니어링이 주된 전장이 되었다. 78건의 머지 중 TileOPs가 51건을 차지하며, 그중 십여 건은 이름 변경, 패키징, 의미 통일, 문서 및 CI 게이트에 해당—성능도 새 연산자도 아니라 인터페이스를 동결하는 작업임. 추적 티켓 7할, CHANGELOG에 0.1.0 확정 및 10-26 표기, 이후 0.x의 호환성 약속이 발효되기 시작; 같은 시기 TileFoundry는 core/nvidia/apple 3개 패키지로 구성, Sunrise는 0.1.15 배포판 머지, 세 라인이 같은 주에 같은 일을 함: “돌아가는” 것을 “출시 가능한” 것으로 바꾸는 것.

정확성의 중심이 형상 검증에서 새 하드웨어와 새 스케줄링으로 이동. 지난주 메인 저장소 머지는 대부분 형상과 기하 검증이었으나, 이번 모니터링 기간에는 수명 주기와 배리어로 바뀜: 크로스 스토리지 도메인 배리어 중복 번호, sm_100 텐서 메모리 해제 시 CTA 배리어 누락, warp 특화가 선행문을 잘못 옮김, setmaxnreg가 ptxas 실패를 유발. 공통점은 컴파일은 통과하지만 결과가 간헐적으로 틀리며, 모두 자동 warp 특화와 신규 아키텍처 스토리지에 속함—스케줄링 권한을 컴파일러에 넘긴 뒤 반드시 치러야 할 비용.

Ascend 라인이 동작 확인에서 모델별 연산자 전개 및 일일 회귀로 진화. situ_glu는 Kimi K3 Stable LatentMoE 게이트 활성화에 정렬, 심사 중인 sparse_mla_fwd와 GLM-5.3 kpool 역시 특정 모델 구조의 부품. 일일 전체 2903항목 전부 통과 후 다음 날 다시 실패 보고, 이는 테스트 케이스 규모가 이미 게이트로 삼기에 충분함을 의미; CI 이미지가 cann9.3.0 주간 업데이트 버전을 추종하는 것과 맞물려, 이 라인의 결론 유효 기간은 주 단위로 계산됨.

실행 백엔드는 감산, 백엔드 목록은 증산. CPU는 TVM-FFI로 통일, PTO는 기본 tvm_ffi, CuTeDSL 수정과 NVRTC 컴파일 추가, 방향은 일관되게 실행 경로 분기 감소. 백엔드 목록은 역방향으로 확장——Intel AMX는 CPU 경로로 편입, ROCm은 FP4와 E8M0 보강, Hygon은 레지스터 파이프라인 재제안. 배포 형태는 「한 세트 코드 다중 백엔드 분기」에서 「한 세트 IR, 다중 패키징」으로 전환 중이며, #3666에서 TVM을 외부 의존성으로 전환한 것과 같은 방향이다.


부록: 자료 및 검증 설명

출처 검증표

출처 검증 결과
tile-ai 조직 저장소 29개 저장소, 모니터링 기간 내 푸시 11개; 머지 78건, 리뷰 중 업데이트 76건, 신규 issue 19건
tilelang 메인 저장소 10건 머지(9건은 10-23, 1건은 10-25); VERSION은 여전히 0.1.15, 신규 tag 없음; 리뷰 중 50건 업데이트, TIRx 교체(#3666) 포함
TileOPs 51건 머지, 최초 릴리스 정리와 성능 중심; tag 없음, release 없음; PyPI 최신은 여전히 0.0.1.dev2(2025-10-09)
TileFoundry 10건 머지(#257 ~ #269); v0.0.3 릴리스 노트는 10-22 호에 이미 수록, 이번 모니터링 기간 내 신규 tag 없음
tilelang-ascend 1건 머지(situ_glu, 기본 브랜치 ascendc_pto), 리뷰 중 24건 업데이트; 일일 테스트 2903개 전부 통과 후 다음 날 작업 실패
tilelang-hygon 메인라인 3건 머지(작성자 날짜 10-14 ~ 10-20, 일괄 머지에 해당); 리뷰 중 2건(#18 / #27)
tilelang-sunrise 1건 머지(0.1.15+sunrise.1.2.0 릴리스 PR), 머지 후 이후 커밋 없음
tilelang-mlir-ascend 기본 브랜치 main은 모니터링 기간 내 커밋 0건; 푸시는 update0.1.15 / ci-0.1.15 / probe-ci 세 브랜치에서 발생, 버전 적응 및 CI 탐색에 해당
tilelang-metax / musa 모니터링 기간 내 푸시 없음, 각각 10-16 / 09-30에 정지
TileRT / tilescale / DeepStack 푸시 없음; tilescale은 버전 업그레이드 문의 1건 수신(#72)
채택처 TileKernels / FlashQLA 모두 10-14에 정지, 푸시 없음
CANN 커뮤니티 ops-tilelang 연산자 저장소 기본 브랜치 마지막 커밋은 10-22, 모니터링 기간 내 신규 없음
Google News(중영문 다수 조합, 프록시 경유) 정확히 일치 1건(SGLang 블로그), 원문 전체 확인 결과 TileLang 언급 없음, 무관으로 제외
Hacker News 일치 2건, 모두 AI 투자 관련 논의, 주제와 무관
arXiv TileLang을 제목 또는 초록 키워드로 검색, 최신은 2026-07, 모니터링 기간 내 0건
PyPI tilelang 0.1.15(09-30), tilefoundry 0.0.3(10-21); tileops는 여전히 0.0.1.dev2
커뮤니티 신규 저장소 신규 저장소 2개(tilelang-puzzles-ascend, tilelang-operator-interview)와 활성 저장소 4개, 모두 생성일과 푸시 시간 확인 완료

전체 출처 목록

4]** TileOPs 문서 및 제3자 고지 (#2753) — https://github.com/tile-ai/TileOPs/pull/2753