모니터링 기간: 2026-10-21 07:00 ~ 2026-10-22 07:00 (베이징 시간, 24시간).

출처: GitHub tile-ai 조직 저장소별 점검(Atom 커밋 스트림, tilelang / TileOPs / TileFoundry / tilelang-ascend〔ascendc_pto〕/ tilelang-hygon〔main 및 feature 브랜치〕/ tilelang-metax〔dev〕/ tilelang-musa / tilelang-mlir-ascend / TileRT / tilescale / DeepStack 대상) + 병합 및 심사 중 실값 검색(is:merged / is:open 두 그룹, 저장소별 그룹 통계) + 릴리스 페이지 tag 점검 + 문서 사이트 커밋 점검 + 채택 측 저장소 점검(TileKernels / FlashQLA) + 커뮤니티 신규 저장소 검색 + Google News 중영문 다중 쿼리(프록시 경유) + Hacker News + arXiv + 제3자 산업 분석 보고서.


이번 호 인덱스

  • 오늘의 핵심: TileFoundry 0.0.3 정식 릴리스, 명령어 수준 스케줄링을 agent에 위임; TileOPs 하루에 20건 머지, MLA 역방향과 SM89 소규모 경로 같은 날 보완; 메인 저장소 8건 머지는 “오류는 없지만 결과를 신뢰할 수 없는” 컴파일러 결함에 집중; Ascend DeepGEMM 정렬이 심사 중에서 머지로 전환(10-21)
    1. 핵심 프로젝트 진행 상황
      • 1.1 메인 저장소: 배치형 finalize_reducer가 이전에 첫 번째 출력 블록만 리듀스함(#3070)(10-22)
      • 1.2 메인 저장소: BF16→FP32 벡터화 변환을 인라인 PTX 패킹 lane 변환으로 변경(#3595)(10-21)
      • 1.3 메인 저장소: 언롤 패스가 빈 stepped 루프를 유지, ROCm의 Select를 lane별 하강으로 변경(#2887)(10-21)
      • 1.4 메인 저장소: 소프트웨어 파이프라인이 전이적 복사 의존성을 유지, 스레드 도메인이 영역 충돌 판정에 참여(#2822)(10-21)
      • 1.5 메인 저장소: cast의 소스/대상/반올림 세 조합 사전 검증, 주석 조용히 누락 거부(#3350)(10-21)
      • 1.6 메인 저장소: arch 없는 CUDA target을 조용히 sm_50으로 채우지 않고 거부(#2860)(10-21)
      • 1.7 심사 중: 시프트 부호성과 TIRx 루프 스코프 수정이 tvm fork와 메인 저장소에 쌍으로 커밋(#3597 / tvm #87 / #86)(10-21)
    1. 다중 백엔드 적응(Ascend / MetaX / Hygon / Moore Threads 등)
      • 2.1 Ascend 평가: SemiAnalysis 심층 보고서에 TileLang Ascend 전용 장을 두고, 6개 저장소 중 당시 TileLang만 사용 가능하다고 언급(10-21)
      • 2.2 메인 저장소 Ascend: DeepGEMM 휴리스틱과 epilogue 정렬이 심사 중에서 머지로 전환(#3577)(10-21)
      • 2.3 메인 저장소 Ascend: warp_reduce_max/min의 PTO 상 정수 부호성 수정(#3582)(10-21)
      • 2.4 Ascend 저장소: 32B 미만의 압축 행 간격 소스를 표현할 수 없어 keepdim reduce 출력이 틀어짐(#1795)(10-21)
      • 2.5 Ascend 저장소: JIT 캐시를 원자적 게시로 변경, 캐시 삭제 시 복구(#1903)(10-21)
      • 2.6 Ascend 저장소: cann-bench에 depthwise_conv_2d 예제 추가(#1915)(10-21)
      • 2.7 Ascend 심사 중: indexer_topk_reducesum, GLM-5.3 kpool compress 및 WY fast 계열 연산자 이전(10-21)
      • 2.8 Hygon: feature 브랜치에서 FP8 디코딩 GEMM 추진, 주소 체인이 kernel의 13%를 차지하는 것으로 파악(10-21)
      • 2.9 MetaX / Moore Threads / MLIR-Ascend: 모니터링 기간 내 푸시 없음, 세 라인 모두 기존 버전에 머묾(10-21)
    1. 생태계와 채택자(TileOPs / TileFoundry / 연산자 라이브러리)
      • 3.1 TileFoundry: 0.0.3 태그 릴리스, 명령어 수준 스케줄링 + 리팩터링 분석 + H200 및 Apple AMX 예제(10-21)
      • 3.2 TileOPs: MLA 프리필 역방향 op 계층과 SM90 warp 특화 kernel 보완(#2678 / #2680 / #2688 / #2686)(10-22)
      • 3.3 TileOPs: dense GQA가 FP32 attention sink 지원, -inf는 끄고 +inf는 해당 head를 0으로(#2515)(10-21)
      • 3.4 TileOPs: SM89 소규모 경로 집중 보완, FP8 BMM 기본 타일을 64×64로 축소(#2681 / #2672 / #2669 / #2654)(10-21)
      • 3.5 TileOPs: NSA top-k를 SM89에서 2048 압축 블록까지 확장하고 출력 슬롯 보완(#2674 / #2675 / #2673)(10-21)
      • 3.6 TileOPs: GDN 전방이 walk가 SM을 채울 때 단일 kernel로 완료, 분할 양자화 정규화를 cluster별 넓은 행으로 분할(#2682 / #2679)(10-21)
      • 3.7 TileOPs: GQA 역방향이 warp 특화 kernel에서 그룹 KV head를 직접 서비스(#2685)(10-21)
      • 3.8 TileOPs 심사 중: edge 축 폴딩 단일 발사, NSA top-k 열 tile 축소(#2689 / #2690)(10-22)
      • 3.9 채택자: TileKernels와 FlashQLA는 모니터링 기간 내 푸시 없음(10-21)
    1. 커뮤니티, 튜토리얼 및 활동
      • 4.1 커뮤니티 튜토리얼: 중국어 《TVM / TileLang Cookbook》 업데이트, jit부터 cubin까지 설명(10-21)
      • 4.2 커뮤니티 신규 저장소: tilelang-wrapper-for-sail 저장소 생성, 설명 없음(10-21)
      • 4.3 커뮤니티 도구: 원격 자동 튜닝 agent 저장소 계속 푸시(10-21)
      • 4.4 문서와 버전: 문서 사이트 7회 자동 업데이트, 메인 저장소 VERSION은 여전히 0.1.15(10-22)
    1. 트렌드 관찰

오늘의 핵심

이 모니터링 기간에 32건이 머지되었습니다(TileOPs 20, tilelang 8, tilelang-ascend 3, TileOPs 문서 사이트 1). 별도로 정식 릴리스가 하나 있습니다. TileFoundry가 10-21 10:26에 0.0.3을 태그했습니다. 세 라인의 중심은 각기 다릅니다. 메인 저장소의 8건 머지는 거의 전부 “오류는 나지 않지만 결과를 신뢰할 수 없는” 결함 정리입니다. 배치 리덕션이 첫 출력 블록만 처리하던 문제, cast 반올림 어노테이션이 조용히 버려지던 문제, arch가 없는 CUDA target이 조용히 sm_50으로 후퇴하던 문제, 파이프라인 계획이 전이적 의존성을 잃던 문제 등입니다. TileOPs는 하루 만에 MLA 프리필 역방향을 op 계층에서 SM90 warp 특화 kernel까지 끌어올렸고, 동시에 SM89 상의 FP8 BMM, W4A16, 페이지드 DSA, NSA top-k 네 가지 소규모 경로를 함께 진전시켰으며, 리뷰 대기 큐를 16건에서 9건으로 줄였습니다. Ascend 측에서는 어제까지 리뷰 중이던 DeepGEMM 휴리스틱 및 epilogue 정렬(#3577)이 오늘 머지되었고, Ascend 저장소에서는 keepdim reduce 출력을 뒤섞는 메모리 접근 모델링 결함(#1795)을 수정했습니다. 산업 측면에서는 SemiAnalysis의 Huawei-DeepSeek 심층 보고서가 TileLang Ascend를 별도 절로 다루었으며, 당시 Ascend 지원을 받은 6개 저장소 중 TileLang만 사용 가능했다는 판단을 제시했습니다.


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

1.1 메인 저장소: 배치 finalize_reducer가 이전에는 첫 출력 블록만 리덕션하던 문제(#3070)

10-22 01:16에 머지되었고, 2개 파일 +29/-5, #2623을 수정했습니다. 배치 finalize_reducer의 lowering이 버퍼 시작 부분에서 run_batch를 한 번만 호출했고, 나머지 연속 출력 블록은 전혀 리덕션되지 않았습니다. 출력 차원이 batch보다 클 때 뒤쪽 각 구간이 받는 것은 리덕션 결과가 아니라 초기화되지 않았거나 이전 라운드에서 남은 값이었습니다. 수정은 ceil(OutputDim / batch)에 따라 올바른 오프셋을 가진 배치 all-reduce를 블록별로 발행합니다. 출력 128개, batch=4일 때 32회 호출을 발행하며, 동시에 재매핑 reducer 버퍼를 플랫 뷰로 전환하고 각 배치를 상수 선형 오프셋으로 주소 지정하여 기존의 형상 및 stride 재구성을 제거했으며 모든 chunk 호출을 유지했습니다. 검증은 L40S에서 완료되었습니다. sum/max/min 수치 회귀를 새로 추가하여 fp16과 fp32, batch 4/8/16을 커버했고, 23개 finalize_reducer 관련 케이스가 통과했으며 외부 재현 매트릭스 16건에서 불일치가 없었습니다. 전형적인 “작은 크기에서는 정상, 큰 크기에서는 조용히 오류” 유형의 결함입니다.

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

1.2 메인 저장소: BF16→FP32 벡터화 변환을 인라인 PTX 패킹 lane 변환으로 전환(#3595)

10-21 19:28에 머지되었고, 4개 파일 +19/-7입니다.
tl::__tl_cvt_bf16x2_to_f32x2를 새로 추가하여 인라인 PTX로 쌍을 이룬 BF16 lane을 한 번에 f32x2로 변환하고, lane별 스칼라 승격 경로를 대체했습니다. lane 폭 2, 4, 8 세 가지 모두 지원을 유지합니다. 동시에 벡터화 cast 및 레이아웃 추론의 기대값을 갱신했고, BF16 cast 테스트를 기존 커버리지 범위로 수렴시켜 단언 범위를 확대하지 않았습니다. 변경은 의미론을 건드리지 않고 생성되는 명령 시퀀스만 바꾸며, 영향 범위는 양자화 cast로 향하는 모든 BF16 연산 경로입니다.

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

1.3 메인 저장소: 언롤 pass가 빈 stepped 루프를 유지, ROCm의 Select는 lane별 lowering으로 변경(#2887)

10-21 19:20에 머지되었습니다. 루프 언롤 pass는 이전에 trip count가 0인 stepped 루프를 빈 껍데기로 간주해 제거하여, 이후 pass가 보는 프로그램 구조를 바꾸었습니다. 수정은 언롤 과정에서 이런 빈 루프를 유지하도록 변경했습니다. 같은 커밋에서 ROCm 측 벡터화 Select도 수정했습니다. lane별 lowering으로 바꾸어 전체 그룹 lowering이 지원되지 않는 target에서 실패하는 것을 피했습니다. 두 변경은 하나는 IR 구조, 하나는 백엔드 lowering에 관한 것으로 같은 커밋에 묶여 있으며, 동일한 재현 시나리오에서 비롯되었음을 보여줍니다.

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

1.4 메인 저장소: 소프트웨어 파이프라인이 전이적 복사 의존성을 유지, 스레드 도메인이 영역 충돌 판정에 참여(#2822)

10-21 18:13에 머지되었습니다. 파이프라인 계획은 이전에 직접 의존성만 따라갔고, 간접(전이적) 복사 의존성은 계획 단계에서 유실되어 dependent copy의 대기가 함께 삭제되었습니다. 또한 물리 영역 충돌 검사가 계획과 lowering 양쪽에 각각 다른 기준으로 존재했습니다. 수정은 후방 worklist로 스칼라와 buffer 복사 의존성을 동시에 따라가게 하여 계획과 lowering이 동일한 물리 영역 충돌 검사를 공유하도록 했고, 재생 바인딩을 스코프 내에 유지하며, 전이적 생산자, strided alias, 순차 TMA 폴백 경로의 커버리지를 보완했습니다. 두 번째 커밋은 스레드 도메인을 영역 충돌 판정에 도입했습니다. 접근을 먼저 물질화된 스레드 도메인으로 전개한 뒤 영역을 비교하여, 서로 겹치지 않는 공유 메모리 슬라이스는 여전히 파이프라인될 수 있게 하면서 스레드 간 의존성과 strided 버퍼의 물리적 중첩을 보존했습니다. 동일한 도메인 집합이 파이프라인 계획, 의존성 검증, buffer 버전화에 사용됩니다.

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

1.5 메인 저장소: cast의 소스/대상/반올림 세 조합 사전 검증(#3350)

10-21 13:49에 병합되었습니다. round는 명시적으로 나열된 조합에서만 내려갈 수 있습니다. PTX cvt.rs는 f32 소스, 32비트 rbits 피연산자와 특정 패킹 대상이 필요합니다. 나머지 조합은 이전에 분기 디스패치 단계에서 그냥 통과되어 반올림 주석이 조용히 사라졌습니다. 스칼라 루프는 원래 이런 조합을 거부했지만 벡터화 루프는 거부하지 않았기 때문에, 동일한 cast가 두 루프 형태에서 다르게 동작했습니다. 대표적인 예가 f32→E8M0입니다. 이 helper는 양의 무한대로 반올림하며 반올림 인자를 아예 받지 않는데, 벡터화 분기는 round를 읽은 적이 없었습니다. 이제 디스패치 전에 불법 조합을 일괄 거부하여 어떤 분기도 더 이상 주석을 잃을 수 없습니다. 함께 제공되는 테스트는 실제로 rbits를 받는 rs 모드에만 해당 인자를 전달합니다.

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

1.6 메인 저장소: arch 없는 CUDA target이 sm_50을 조용히 채우지 않고 거부 (#2860)

10-21 13:32에 병합되었으며, 1개 파일, #1049를 수정합니다. CUDA toolkit은 있지만 사용 가능한 GPU가 없는 머신에서 arch를 지정하지 않은 CUDA target은 맨 cuda로 퇴화하고, 이어서 TVM이 arch=sm_50을 조용히 채워 넣어 컴파일이 잘못된 SM으로 진행되며 전 과정에 아무런 진단도 없습니다. 이것이 바로 tilelang.compile(func)에 target="auto"를 줄 때의 함정입니다. 수정은 _cuda_target_from_arch에 적용됩니다. 자동 감지와 명시적 target="cuda"가 공유하는 유일한 진입점에서, 조치 가능한 오류를 던지고 오류 안에 명시적 arch의 두 가지 표기법({"kind":"cuda","arch":"sm_90"} 또는 TILELANG_DEFAULT_TARGET)을 제시하도록 변경했습니다. headless 컴파일은 구체적인 arch만 주면 여전히 사용 가능한데, codegen과 nvcc는 toolkit에만 의존하고 디바이스 접근은 kernel 시작 시점으로 미뤄지기 때문입니다. PR 과정에서 한때 GPU 없는 단위 테스트 세 개가 추가되었으나 최종 커밋에서 철회되어, 변경은 진입점 검증만 남았습니다.

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

1.7 심사 중: 시프트 부호성과 TIRx 루프 스코프 수정이 짝을 이룬 커밋

메인 저장소 #3597은 혼합 부호 시프트에서 부호성이 유실되는 문제를 수정하며, 같은 시기에 tile-ai/tvm fork에 #87 「TIRx 시프트 좌측 피연산자 타입 보존」을 커밋했는데, 둘은 동일한 로직의 언어 계층과 TIRx 계층 대응 변경입니다. 별도로 tvm #86은 업스트림 apache/tvm#19927의 루프 스코프 수정을 백포트합니다. fork는 심사 중 25건, 메인 저장소는 심사 중 163건이며, TIRx 측의 선행으로 fork가 일부 변경의 사전 검증을 맡고 메인 저장소가 뒤따르는 이 협업 경로가 이번 모니터링 기간에 두 번째로 나타났습니다.

출처: https://github.com/tile-ai/tilelang/pull/3597, https://github.com/tile-ai/tvm/pull/87, https://github.com/tile-ai/tvm/pull/86


2. 멀티 백엔드 적응 (Ascend / MetaX / Hygon / Moore Threads 등)

2.1 Ascend 평가: SemiAnalysis 심층 보고서에 TileLang Ascend 전용 장 마련

SemiAnalysis는 10-21 《The Huawei-DeepSeek Symbiosis》를 발표했으며, 부제에 「Huawei Ascend 950PR 심층 분석과 마이크로벤치마크, DSv4.1 Flash 분석, DeepSeek의 Ascend 지원, AICPU, TileLang Ascend」를 직접 나열했습니다. TileLang과 직접 관련된 세 가지: 첫째, Ascend 지원을 받은 여섯 저장소(TileLang, DeepGEMM, DeepEP, TileKernels, FlashMLA, DeepSelect) 중 기사 작성 시점에 사용 가능한 것은 TileLang뿐이었는데, CANN 9.2.0이 아직 릴리스되지 않았고 DeepSeek는 CANN 9.2.0과 C++20 컴파일러를 요구하는데 9.2.0-beta.2는 후자를 제공하지 않기 때문입니다. 둘째, Ascend 950 백엔드는 별도의 Ascend 적응 저장소에만 존재하는 것이 아니라 이미 TileLang 메인 저장소에 병합되어 네이티브 컴파일, 스케줄링, 동기화와 런타임 통합을 제공하며, AutoSchedule은 데이터 의존성과 예상 실행 시간을 근거로 오버랩과 온칩 버퍼 슬롯 수를 결정하고 950PR에서 소형 단일 연산자의 경우 최대 40% 단축하며, 컴파일러는 동기화를 자동 삽입하고 불필요한 대기를 제거하며 조건 분기도 검사합니다. 셋째, CANN, Triton-ascend와 비교할 때 「일부 크기에서는 CANN과 대등하거나 능가」하며 최적 구현은 크기에 따라 달라집니다(저자는 이것이 핫 캐시 상태의 소박한 벤치마크임을 명시). 기사는 동시에 생태계 공백도 지적합니다. 대부분의 최적화가 슈퍼노드를 겨냥하며, x86 호스트에서 vLLM-Ascend 0.26.0rc1은 여전히 여러 문제가 있습니다.

출처: https://newsletter.semianalysis.com/p/huawei-deepseek

2.2 메인 저장소 Ascend: DeepGEMM 휴리스틱과 epilogue 정렬이 심사 중에서 병합으로 (#3577)

10-21 10:20에 병합되었으며, 29개 파일에서 +1392/-1036입니다. 지난 기간에는 심사 중으로 기록되었으나 이번 기간에 병합이 완료되었습니다. DeepGEMM-Ascend의 구성 선택과 epilogue를 보완하여 dense, batched 및 grouped GEMM의 fused bias, Alpha, BF16 stochastic rounding과 FP8 양자화를 포함하며, 작성자 본인의 커밋에서 중복 setup을 삭제하고 테스트 게이팅을 복원했습니다. 이 커밋은 2.1의 외부 판단과 서로를 뒷받침합니다. Ascend 측에서 반복적으로 다듬고 있는 것은 바로 GEMM 경로의 휴리스틱과 수치적 마무리이며, 이것이 바로 ‘사용 가능’과 ‘잘 동작함’ 사이의 격차입니다.

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

2.3 메인 저장소 Ascend: PTO에서의 warp_reduce_max/min 정수 부호성 수정 (#3582)

10-21 10:21에 병합되었습니다. PTO의 pto.redux_max/min은 타입이 있는 정수를 거부합니다. PTOAS는 부호성 없는 캐리어에 명시적 signedness를 요구하므로, int32/uint32의 T.warp_reduce_max/min은 컴파일이 직접 실패하여 “requires signedness=’signed’ or ‘unsigned’ for integer values” 오류를 냅니다. 수정은 warp_reduce_sum/max/min을 통일하여 contrib.ptodsl의 tl.redux_* 래퍼(현재 내보내기됨)를 거치도록 하며, 래퍼가 캐리어와 부호성을 제공하고 AscendAllReduce 방식에 따라 value dtype에 게이팅을 설정합니다. 이슈에는 메인 저장소 #3541과 PTOAS #1579가 인용되었습니다. 검증은 두 계층으로 나뉩니다. op × dtype 그리드의 lower-only codegen 테스트와, 희소한 이중 대상(ascend/pto) 실행 테스트입니다. ≥2^31인 uint32 lane을 사용하여 부호성을 잘못 쓰면 직접 드러납니다.

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

2.4 Ascend 저장소: 32B 미만의 컴팩트 행 간격 소스를 표현할 수 없어 keepdim reduce 출력이 잘못됨 (#1795)

10-21 17:15에 병합되었으며, 2개 파일 +302/-3으로 #1682를 수정합니다. 이번 모니터링 기간에서 기술적 함량이 가장 높은 커밋입니다. 근본 원인은 템플릿 계층에 있습니다. copy_ub_to_gm은 무조건 다중 burst DataCopyPad를 생성하는데, MTE3 엔진이 구현하는 것은 시스템 수준의 “UB 좁은 행을 32B 슬롯에 저장” 규약입니다. 즉 소스 주소가 burst마다 ceil(blockLen/32) + srcStride개의 32B 블록만큼 전진합니다. 32B 경계에 맞춰 행을 쓰는 생산자에게는 정확히 일치하지만, T.reduce_max의 (M,1) fp32 출력은 V-pipe 컴팩트 쓰기로 행 간격이 4B에 불과하여 엔진이 표현할 수 없습니다. 실측 결과 두 번째 burst는 element 1이 아닌 element 8을 읽었으며([127, 1151, 71, 199]에서 1151이 정확히 element 8의 값), 쓰기 측에는 문제가 없고 DMA 소스 주소 시퀀스가 잘못된 것입니다. 수정은 두 부분으로 나뉩니다. 양측이 모두 packed이고 total ≤ 65535일 때 flat 단일 burst(M×L 바이트, “단일 burst 길이는 임의” 계약 활용)로 접습니다. 표현 불가능한 32B 배수가 아닌 행 간격은 trap()으로 명시적 중단하도록 변경하며, 컴파일 타임 if constexpr 가드로 32B 배수와 32B 미만 슬롯 레이아웃에는 추가 코드를 생성하지 않습니다. 왜 다운그레이드하지 않는가: bisheng의 교차 파이프라인 자동 동기화는 직선 intrinsics만 커버하며, 조건 분기로 DataCopyPad를 감싸거나 형제 분기에 GM 스칼라 쓰기를 두면 bisheng이 잘못된 동기화 코드를 생성하여 디바이스 교착을 유발합니다(실측 결과 행별 DMA를 런타임 분기로 감싸면 aicore 예외가 발생). 14개 케이스가 flat/multi 경로, keepdim reduce 재현, UB 루프 재사용, 표현 불가능한 pitch의 합법적 단일 burst 형식과 명시적 중단을 커버하며, 테스트 환경은 Ascend910 A3(dav-c220)/CANN 9.0.0 로컬 빌드입니다. PR 자체 설명에는 두 가지 경계가 남아 있습니다. 32B 미만 컴팩트 행 간격이면서 행 간격 목적지가 있는 경우(예: (M,1) fp32를 넓은 텐서의 특정 열에 쓰기)는 여전히 슬롯 스텝을 사용하며, blockCount > 4095(12비트 필드)는 여전히 조용히 잘립니다(4200행 실측에서 처음 104행만 복사됨). 이는 별도 issue로 제기할 예정입니다.

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

2.5 Ascend 저장소: JIT 캐시를 원자적 게시로 변경하고 캐시 삭제 시 복구 (#1903)

10-21 16:20에 병합되었으며, 7개 파일 +1026/-86, 관련 #1836. 기존 구현은 컴파일 산출물을 kernel_lib.so에 제자리 덮어쓰기하여, 다른 프로세스가 이미 해당 공유 라이브러리를 로드한 경우改写 중인 파일을 읽게 되는 문제가 있었습니다. 수정은 먼저 산출물을 동일 디렉터리의 독립 임시 파일로 복사한 뒤 os.replace()로 원자적 게시를 수행합니다. 로드 전에 캐시 라이브러리가 이미 삭제된 경우, 오류 메시지와 파일 상태 확인을 거쳐 cache miss를 반환하고 재컴파일합니다. 저장 단계에서 디렉터리가 사라지면 저장을 건너뛰고 이미 얻은 컴파일 또는 튜닝 결과를 유지합니다. 권한 오류, 의존 라이브러리 누락, 무효 ELF 및 직렬화 내부 예외는 계속 상위로 전파되며 miss로 삼켜지지 않습니다. 적용 범위는 KernelCache, AutoTunerCache 및 AutotuneResult를 포함하며, cache key, 연산자 계산 로직 및 CI 병렬도는 변경하지 않습니다. host-only 테스트 41건 통과(원자적 게시 9건, 캐시 삭제 복구 32건), PR 자체 설명에 따르면 NPU 측 통합 검증은 수행하지 않았습니다. 원자적 게시 부분은 #1853의 구현을 따르며 원저자 정보를 유지합니다.

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

2.6 Ascend 저장소: cann-bench에 depthwise_conv_2d 예제 추가 (#1915)

10-21 16:19에 병합되었습니다. examples/cann-bench/에 depthwise 2D 컨볼루션 벤치마크가 추가되었습니다. 함께 제공된 스모크 테스트 세부 사항은 기록할 만합니다: bench_test.sh가 PASSED를 판정하는 기준은 출력에 KERNEL OUTPUT MATCH 또는 TEST PASSED!가 나타나는 것이었는데, 스크립트가 원래 출력하던 것은 “smoke test passed”였고 종료 코드는 0이었으나 실패로 판정되었습니다. 수정은 LSTM/GRU의 스모크 테스트와 정렬하여 새 테스트 케이스가 CI에서 지속적으로 거짓 빨간불이 되는 것을 방지합니다.

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

2.7 Ascend 심사 중: indexer_topk_reducesum, GLM-5.3 kpool compress 및 WY fast 시리즈 마이그레이션

Ascend 저장소의 심사 대기열은 이번 모니터링 기간에 13건의 업데이트가 있었으며, 세 그룹에 집중되어 있습니다. #1917은 indexer_topk_reducesum 연산자를 구현하며, 이는 희소 어텐션의 인덱서에서 top-k 후 합산에 해당합니다. #1910은 GLM-5.3의 kpool 압축 연산자를 추가하며, 차세대 모델의 KV 압축 경로를 가리킵니다. #1827 / #1828 / #1802 / #1803 / #1799는 WY fast 및 chunk 시리즈 연산자 마이그레이션 그룹(WY fast 본체 및 그 역방향, chunk_o 역방향, Chunk Scaled Dot KKT, Chunk Delta H)으로, 명백히 선형 어텐션/게이티드 델타 네트워크의 훈련 체인을 겨냥합니다. 그 외에 #1785는 다차원 스칼라 BufferLoad가 T.tile 이항 연산에서의 인덱스를 수정하고, #1854는 자동 크로스코어 동기화 구성을 검증하며, #1731은 gemm_v0의 W4A4 int4×int4 결과 오류(#438)를 수정합니다.

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

2.8 Hygon: feature 브랜치에서 FP8 디코딩 GEMM 추진, 주소 체인이 kernel의 13% 차지로 확인

tilelang-hygon의 main 브랜치에는 모니터링 기간 내 새로운 커밋이 없었으나(최신은 여전히 10-20에 병합된 #25), feat/hcu-smls-b-vgpr 브랜치에는 10-21 11:04와 15:27에 세 차례 푸시가 있었으며, 내용은 재사용 가능한 성능 진단 및 튜닝 결론입니다. 11:04 커밋은 디코딩 GEMM의 k-loop를 전개하고 M>96인 tile을 bn96으로 되돌렸습니다. 저자의 핵심 판단은 “매 단계 고정 오버헤드가 barrier가 아닌 주소 체인에서 온다”는 것입니다. 기호화된 공유 레벨 인덱스 (k+d) % 3가 v_mul_lo_u16 / v_sub_u16 / v_readfirstlane_b32로 내려가 matrix_load의 주소 경로에 놓이면서 kernel의 13%를 차지하며, T.Pipelined는 원래 동일한 두 barrier를 발생시킵니다. 15:27 커밋은 M∈(64,128]의 wide-N 중간 구간을 우선 block 수 기준으로 분할하고, gate_up이 M∈(64,96]에서 bm96/bn128/bk128/ns2를 취하도록 하며, builder를 패키지 내 decode_cfg로 이동시켰습니다. 동시에 디코딩 GEMM의 기록 문서를 3825행에서 588행의 “결과 + 최적화 로그” 2단 구성으로 정리하고, 종료된 레버 인덱스와 대역폭 모델을 별도 첨부했습니다.

출처: https://github.com/tile-ai/tilelang-hygon/tree/feat/hcu-smls-b-vgpr

2.9 MetaX / Moore Threads / MLIR-Ascend: 모니터링 기간 내 푸시 없음

tilelang-metax(기본 브랜치 dev, 최신 푸시 10-16, 릴리스는 여전히 09-17의 v0.1.14에 머무름), tilelang-musa(최신 09-30, v0.1.15+musa.1), tilelang-mlir-ascend(최신 10-19, tag는 09-09의 v0.1.2.020.sglang.poc에 머무름) 세 저장소 모두 이번 모니터링 기간에 커밋이 없었고 새 tag도 없습니다.

출처: https://github.com/tile-ai/tilelang-metax, https://github.com/tile-ai/tilelang-musa, https://github.com/tile-ai/tilelang-mlir-ascend


3. 생태계와 채택 측(TileOPs / TileFoundry / 연산자 라이브러리)

3.1 TileFoundry: 0.0.3 tag 릴리스, 명령어 수준 스케줄링 + 분석 재구성 + H200 및 Apple AMX 예제

지난 기간에는 “0.0.3 공지가 README에 들어갔고 아직 tag를 기다리는 중”이라고 기록했는데, 이번 기간 10-21 10:26에 정식 릴리스되었습니다. PyPI에는 tilefoundry==0.0.3으로 올라갔고 코드명은 “Agent-driven scheduling”입니다. 핵심 변화는 스케줄링 권한의 귀속입니다. 컴파일러가 각 HIR 연산을 어떤 명령어로 구현할 수 있는지, 각각 무엇이 필요한지를 나열하면 agent가 후보 중에서 선택하고, 컴파일러가 선택된 스케줄을 TIR로 낮춥니다. 함께 제공되는 CLI에는 tilefoundry schedule candidates와 schedule facts가 있어 후보와 제약을 보여주며, tf.schedule이 선택을 기록하고 tilefoundry schedule finalize가 하강을 완료합니다. 명령어는 AtomSched 연산으로 선언되고 명시적 TIR 피연산자 계약을 가지며, CUDA MMA atom, SM90 WGMMA와 비동기 복사부터 시작합니다. 분석 부분은 메모리(분할 할당, footprint와 재사용 윈도, 루프 인식 buffer 수명), 비용(실행 스코프별 작업량과 트래픽 계산, 각 접근 관계가 무엇을 읽는지 선언), 구조(정의 사실, 추정 컨텍스트와 스코프 스냅샷을 통일된 visit context로 처리, 프로젝션 재사용으로 각 코퍼스 사례를 한 번만 분석)로 재구성되었습니다. 새 튜토리얼은 8192×5120 곱하기 5120×17408 GEMM을 따라가며 AtomSched가 H200에서 달성한 최적 kernel까지 설명합니다.

성능 측면에서 세 가지 실제 수치를 제시합니다. Qwen3.8-27B 프리필이 단일 H200에서 1024 / 4096 / 8192 token에 각각 80.29 / 309.61 / 631.19 ms이고 SGLang은 89.06 / 317.11 / 638.25 ms입니다. 짧은 시퀀스 128 / 256 / 512 / 1024 token에서는 각각 SGLang 대비 1.88× / 1.41× / 1.10× / 1.03×입니다. Apple M2 Pro의 Qwen 프리필 예제는 큰 프로젝션을 FP16 AMX 외적으로 구현합니다. 두 Qwen3.8-27B 실행은 모든 길이에서 transformers와 동일한 첫 token을 생성합니다. 알려진 문제는 두 가지입니다. wheel이 아직 TileFoundry의 CUDA 런타임 헤더 파일을 패키징하지 않아 설치 패키지에서 출발하면 tf.compile이 CUDA kernel을 컴파일할 수 없고(소스 체크아웃 필요, 다음 버전에서 수정), 성능 타임라인이 insert_slice / tf.zeros의 mesh 위치 간 가격 책정이 잘못되어 있으며 mesh lane 미채움을 표시하지 않습니다(#239).

출처: https://github.com/tile-ai/TileFoundry/releases/tag/v0.0.3

3.2 TileOPs: MLA 프리필 역방향 op 계층 및 SM90 warp 특화 kernel 보완(#2678 / #2680 / #2688 / #2686)

네 건이 하나의 흐름으로 이어집니다. #2678(10-21 11:34)은 MLADenseBwdOp와 MLAVarlenBwdOp 두 op 계층을 추가해 FA3의 _flash_attn_backward 인터페이스에 맞춥니다. #2680(10-21 20:58)은 SM90 kernel을 보완해 D_qk=192, D_v=128에 대해 MLADenseBwdWSKernel과 MLAVarlenBwdWSKernel 두 가지 warp 특화 구현을 제공합니다. #2688(10-21 23:28)은 MLAVarlenPrefillWSFwdKernel의 상주 CTA 데이터 가져오기 순서를 변경합니다. 이전에는 각 head에 query tile을 하나씩 먼저 할당하고 첫 tile이 끝난 뒤에는 head별로 순차 대기해야 했는데, 이제는 한 번에 같은 head의 query tile만 처리합니다. #2686(10-22 03:08)은 마무리 정리로 단일 독자 상수와 helper를 사용 위치로 옮겼으며 동작은 변경하지 않습니다. 문서 사이트 #78은 두 새 op를 Attention 페이지에 동기화해 기록했는데, check_api_pages.py가 메인 저장소에서 내보내는 207개 op 중 두 페이지가 누락되었다고 보고한 것이 계기였습니다.

출처: https://github.com/tile-ai/TileOPs/pull/2678, https://github.com/tile-ai/TileOPs/pull/2680, https://github.com/tile-ai/TileOPs/pull/2688

3.3 TileOPs: dense GQA에서 FP32 attention sink 지원 (#2515)

10-21 22:42에 병합됨. dense GQA의 프리필과 디코딩에 선택적 per-head FP32 attention sink를 추가하며, SM90에서의 FP16/BF16/FP8, RoPE, softcap, 슬라이딩 윈도우를 지원한다. 다른 아키텍처에서는 sink 호출을 그대로 거부한다. 의미상 각 sink는 분모에서 스케일링도, softcap도 적용되지 않는 하나의 logit이다. -inf는 해당 sink를 끄고, +inf는 해당 head 출력을 곧바로 0으로 만든다. split decode도 큰 logit 아래에서 sink 가중치를 보존해야 한다. 덧붙여 한 가지 벤치마크 왜곡도 수정했다. 기존에는 청크 프리필 벤치마크가 단일 query 디코딩으로 측정되고 있었다. 융합 RoPE의 꼬리 케이스는 KV 길이를 271/1025로 조정해 분할 실행을 커버하도록 했다.

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

3.4 TileOPs: SM89 소규모 경로 집중 보강 (#2681 / #2672 / #2669 / #2654)

네 건의 병합 모두 L40S/4090급의 약점을 보강한다. #2681은 SM89에서 FP8 BMM의 기본 타일을 64×64로 변경했다. 조건은 결과 grid가 SM당 최대 한 블록인 경우이며, 큰 grid는 여전히 128×128을 유지한다. 작성자는 PyTorch 2.13.0 + CUDA 13.0 + TileLang 0.1.12의 단일 카드 실측을 제시했는데, 1×16×64×128이 5.161에서 3.799 us로, 16×128×128×1024가 12.943에서 7.414 us로 감소했고, 4096³은 오히려 512.573에서 583.680 us로 변했다(해당 행은 타일이 바뀌지 않아 노이즈에 해당). #2672는 64열 W4A16의 기본 M 상한을 16에서 64로 확장했으며, M=17 / 32 / 64의 재생 시간이 각각 43.35% / 47.20% / 40.00% 감소했고, 명시적 구성 오버라이드와 수치 허용 오차는 유지했다. #2669는 MMA로 SM89의 페이징 DSA를 구현해 656바이트 FP8 latent cache 레이아웃, BF16 라운딩, 자연로그 LSE, dead position 동작을 유지했다. batch 4 / 128 head / 256 위치에서 0.269 ms로 PyTorch FP32 참조의 0.727 ms 대비 우세하고, 48×64 head×2048 위치에서는 2.543 대 2.535 ms였으며, 작성자는 “대형 케이스는 사실상 동등해 보편적 우위를 구성하지 않는다”고 명시했다. #2654는 작은 token 수에 대해 커버되는 8-token 누산기 프리픽스만 계산·이동하며, 132 SM의 H200, N이 128로 나누어떨어지는 조건, 133–225 출력 tile, K∈{7168, 7680, 8192} 조건에서 40-token 디코딩을 M33–40까지 열었다.

출처: https://github.com/tile-ai/TileOPs/pull/2681, https://github.com/tile-ai/TileOPs/pull/2672, https://github.com/tile-ai/TileOPs/pull/2669, https://github.com/tile-ai/TileOPs/pull/2654

3.5 TileOPs: SM89에서 NSA top-k를 2048 압축 블록으로 확장하고 출력 슬롯 보강 (#2674 / #2675 / #2673)

세 건 모두 동일한 SM89 경로를 다룬다. #2674는 group48이 기존 tiled top-k 프로그램을 재사용하도록 했다. token 하나당 tile 하나(48개 query head 행), 열 방향 GEMM warp 레이아웃이다. #2675는 SM89의 top-k 선택 상한을 기존에서 1024–2048개 압축 블록으로 확장해 head dim 64 / 128 / 256을 커버한다. #2673은 후보 부족 시의 출력 채움을 수정했다. 요청된 각 top-k 슬롯을 -1로 채워야 하는데, 기존에는 32 슬롯 정렬 밴드가 32–63번 슬롯에 이전 값을 남겨두고 있었다. 별도로 #2684는 패킹 요청의 NSA 정렬 용량에 상한을 추가해 min(total_chunks, ceil(total_tokens / block_size))에 따라 스코어링 tile에 정렬한다.

출처: https://github.com/tile-ai/TileOPs/pull/2674, https://github.com/tile-ai/TileOPs/pull/2675, https://github.com/tile-ai/TileOPs/pull/2673

3.6 TileOPs: GDN 단일 kernel 프리필과 분할 양자화 정규화 분할 (#2682 / #2679)

#2682 선형 어텐션을 직접 겨냥한 GDN 포워드: 프리필이 야간 배치로 실행된 79개 행에서 FlashInfer보다 느리며(0.57×–0.98×), 수정 방식은 「walk가 SM을 채울 수 있는」 상황에서 프리필을 단일 kernel로 흡수하는 것이다. #2679는 FusedAddRMSNormPerTokenQuant를 다룬다: 단일 원소당 약 25개의 SASS 명령어가 원소별 수학에 소모되는데, 원소 수학을 묶어 패킹하고 넓은 행을 cluster 간에 분할하도록 변경한다. 두 건 모두 「단일 연산자 내 직렬 오버헤드」를 「더 넓은 병렬성과 더 적은 명령어」로 바꾸는 것으로, 같은 날 SM89의 소규모 경로 튜닝 그룹과 동일한 사고방식이다.

출처: https://github.com/tile-ai/TileOPs/pull/2682, https://github.com/tile-ai/TileOPs/pull/2679

3.7 TileOPs: GQA 역방향이 warp 특화 kernel에서 그룹 KV head를 직접 서비스(#2685)

10-21 22:58에 병합됨. SM90, head dim 128에서 GQABwdOp는 이전에 그룹 KV head를 파이프라인화된 kernel에 넘겨 query head별로 CTA를 하나씩 순회했으나, 이제 warp 특화 GQA 역방향 kernel이 그룹 KV head를 직접 처리하여 중복 이동과 스케줄링 오버헤드를 줄인다. 같은 날 #2687은 PrivateUse1 이름 변경 회귀 테스트의 디바이스 백엔드 자동 로드 문제를 수정했으며, 이는 테스트 인프라 정리에 해당한다.

출처: https://github.com/tile-ai/TileOPs/pull/2685, https://github.com/tile-ai/TileOPs/pull/2687

3.8 TileOPs 심사 중: edge 축 접기 단일 발사, NSA top-k 열 tile 축소(#2689 / #2690)

모니터링 기간 말미의 두 건은 여전히 심사 중이다. #2689는 reduction을 대상으로: edge 축을 한 번의 발사에 접어 넣고 fold의 꼬리 로드를 먼저 발사하도록 한다; #2690은 SM89에서 NSA top-k에 더 좁은 열 tile을 사용한다. 20건이 병합된 후 TileOPs의 심사 중 큐는 지난 기간의 16건에서 9건으로 줄어, 이 모니터링 기간에 조직 내에서 심사 중 건수가 뚜렷하게 감소한 유일한 저장소이다.

출처: https://github.com/tile-ai/TileOPs/pull/2689, https://github.com/tile-ai/TileOPs/pull/2690

3.9 채택 측: TileKernels와 FlashQLA는 모니터링 기간 내 푸시 없음

deepseek-ai/TileKernels(1991★)와 QwenLM/FlashQLA(732★)는 이번 모니터링 기간에 커밋이 없으며, 최신 푸시는 모두 10-14에 멈춰 있다; FlashQLA의 버전은 여전히 09-30의 v0.1.3이다. 채택 측의 정적 상태가 일주일째 지속되고 있으며, 메인라인의 동력은 여전히 tile-ai 조직 내부에 있다.

출처: https://github.com/deepseek-ai/TileKernels, https://github.com/QwenLM/FlashQLA


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

4.1 커뮤니티 튜토리얼: 중국어 《TVM / TileLang Cookbook》 업데이트

RuneFang/tvm_tilelang_cookbook(34★, 7-21 저장소 생성)이 10-21에 푸시되었다. 자기 정의가 명확하다: 「Python을 조금 쓸 줄 알고 CUDA를 들어봤지만 컴파일러 코드를 읽어본 적 없는」 독자를 대상으로, @tilelang.jit부터 .cubin까지 차근차근 파고들게 한다. DSL에서 컴파일 산출물까지 전 체인을 속 시원히 설명하는 중국어 자료는 여전히 희귀하며, Ascend, Hygon 등 새로운 백엔드 입문자에게 특히 유용하다.

출처: https://github.com/RuneFang/tvm_tilelang_cookbook

4.2 커뮤니티 신규 저장소: tilelang-wrapper-for-sail 생성, 아직 설명 없음

flytiger-eco/tilelang-wrapper-for-sail이 10-21 09:04에 생성되었으며, 설명도 README도 없고, 저장소 이름은 SAIL을 위한 TileLang 래퍼 제공을 가리킨다. 이런 「벤더 내부 런타임 + TileLang 외피」 소형 저장소는 보통 신규 하드웨어 접속의 전초기지이지만, 내용이 아직 공개되지 않아 이번 호에서는 기록만 남긴다.

출처: https://github.com/flytiger-eco/tilelang-wrapper-for-sail

4.3 커뮤니티 도구: 원격 자동 튜닝 agent 저장소 계속 푸시

cc-c122/TileLang-Remote-Autotuning-Agent(1★, 7-01 저장소 생성)이 10-21 22:57에 푸시되었다. TileFoundry가 스케줄링을 agent에 맡기는 방향과 일치하게, 커뮤니티 측에서도 자동 튜닝을 로컬 스크립트 순회가 아닌 원격 구동 가능한 agent로 만들려 시도하고 있다.

출처: https://github.com/cc-c122/TileLang-Remote-Autotuning-Agent

4.4 문서 및 버전: 문서 사이트 일곱 차례 자동 업데이트, 메인 저장소 VERSION은 여전히 0.1.15

tilelang.github.io는 모니터링 기간 내에 자동으로 일곱 번 업데이트되었으며(10-21 10:18, 11:26, 11:33, 13:54, 18:26, 19:23 및 10-22 01:23), 모두 메인 저장소의 병합에 따라 촉발되었습니다. 메인 저장소의 VERSION은 여전히 0.1.15(해당 버전은 09-30에 릴리스됨)이며, README의 최신 마일스톤은 여전히 09-30의 Ascend 950 백엔드에 머물러 있습니다. TileOPs에는 새로운 tag가 없으며, TileFoundry는 오늘 v0.0.3 tag를 보충했는데 이는 모니터링 기간 내의 유일한 새 버전입니다. TileOPs-nightly의 pushed_at은 변동이 있었지만 기본 브랜치에는 08-30 이후 새로운 커밋이 없으며, 변동은 비기본 브랜치에서 발생한 것으로 개발 활동에 포함되지 않습니다.

출처: https://github.com/tile-ai/tilelang.github.io, https://github.com/tile-ai/tilelang


5. 트렌드 관찰

컴파일러 결함의 성질이 “잘못된 계산”에서 “잘못된 대상 선택”으로 확대되었다. 이번 기간 메인 저장소의 여덟 건 병합 중 네 건은 “컴파일러가 스스로 무엇을 하고 있다고 생각하는지”를 바꾸는 것이었습니다. arch가 없는 CUDA target이 조용히 sm_50으로 후퇴하고(#2860), cast의 반올림 주석이 분기에 따라 조용히 폐기되며(#3350), 배치형 리덕션이 첫 번째 출력 블록만 처리하고(#3070), 파이프라인 계획이 전이적 의존성을 상실합니다(#2822). 이들의 공통점은 오류를 보고하지 않고 특정 크기나 특정 루프 형태에서만 신뢰할 수 없는 결과를 내놓는다는 점입니다. 이는 크래시보다 위치 파악이 어렵고, 프로젝트가 기능 확장보다 조용한 정확성을 우선시하고 있음을 보여줍니다.

Ascend 라인의 병목이 메모리 모델과 런타임 경계로 이동했다. 32B 미만의 컴팩트 행 간격은 DMA로 표현할 수 없어 명시적으로 중단해야 하며(#1795), 캐시 동시성은 원자적 발행으로 변경하고 삭제 복구를 보충했으며(#1903), PTO의 정수 부호성은 래퍼 계층으로 보완해야 합니다(#3582). 이 세 건은 모두 “연산자 추가”가 아니라 “기존 연산자가 경계 조건에서 오류를 내지 않도록 하기”이며, DeepGEMM 휴리스틱 정렬 병합과 함께 Ascend 측은 능력 커버리지에서 엔지니어링 신뢰성으로 전환하고 있습니다.

분석 기관이 TileLang을 Ascend 사용 가능성의 판단 기준으로 삼기 시작했다. SemiAnalysis는 “여섯 개 저장소 중 당시 사용 가능한 것은 TileLang뿐”이라는 표현으로 DeepSeek의 Ascend 지원 완성도를 정의했는데, 이는 어떤 단일 기술 블로그보다도 TileLang이 국산 컴퓨팅 파워 담론에서 차지하는 위치를 잘 보여줍니다. 실험적 DSL에서 기본 담당 계층으로 바뀐 것입니다. 같은 보고서는 반대 신호도 제시합니다. 최적화가 슈퍼노드에 집중되어 있고 x86 호스트 지원은 여전히 불완전하며, 범용성이 성능에 뒤처져 있다는 점입니다.

어텐션 스택의 중심이 추론 순전파에서 훈련 역전파로 이동했다. TileOPs는 하루 만에 MLA 프리필 역전파의 op 계층, SM90 warp 특화 kernel 및 데이터 로드 순서 최적화를 보충했고, GQA 역전파의 그룹 KV head 처리까지 더했습니다. 이는 Ascend 측이 지난달부터 보충해 온 역전파 연산자(indexer_bwd, SiTU-GLU 역전파, WY fast 역전파)와 완전히 같은 방향입니다. 훈련 측의 TileLang 커버리지가 체계적으로 채워지고 있습니다.

SM89가 “실행 가능”에서 “튜닝”으로 나아가고 있다. FP8 BMM 타일, W4A16의 M 상한, 페이징 DSA, NSA top-k의 네 가지 라인이 같은 날 손질되었고, 모두 단일 카드 실측과 “보편적 우위를 구성하지 않는다”는 한정어를 제시했습니다. 소비자용 및 단일 카드 추론 시나리오가 성능 목표 중 하나가 되었으며, 동시에 저자들의 벤치마크 기준에 대한 자기 제약이 뚜렷이 엄격해졌습니다.

스케줄링과 정확성의 분업이 TileFoundry와 메인 저장소 사이에서 명확해졌다. 메인 저장소는 계속 의미론과 정확성을 강화하고, TileFoundry 0.0.3은 “어떤 명령을 선택할지”를 agent에게 맡기고 “의미론 보장”은 컴파일러에 남기며, H200과 Apple AMX 두 가지 예시로 재현 가능한 수치를 제시했습니다. 이 분업이 안정화된다면 TileLang 생태계에는 “언어 계층은 정확성을 지키고, agent 계층은 성능을 겨루는” 이중 구조가 나타날 것입니다.


부록: 자료 및 검증 설명

출처 검증표

출처 검증 결과
tile-ai/tilelang(main) 모니터링 기간 내 8회 커밋, 8건 병합; VERSION 여전히 0.1.15; 심사 중 163건, 그중 21건 모니터링 기간 내 업데이트
tile-ai/TileOPs(main) 모니터링 기간 내 20회 커밋, 20건 병합; 심사 중 9건, 3건 모니터링 기간 내 업데이트
tile-ai/tilelang-ascend(ascendc_pto) 모니터링 기간 내 3회 커밋, 3건 병합; 심사 중 235건, 13건 모니터링 기간 내 업데이트
tile-ai/tilelang-hygon(main / feat-hcu-smls-b-vgpr) main 커밋 없음; feature 브랜치 3회 푸시(10-21 11:04, 15:27); 심사 중 3건
tile-ai/TileFoundry(main) 신규 커밋 없음; v0.0.3은 10-21 10:26에 tag 생성 및 릴리스; 심사 중 1건
tile-ai/tilelang-metax(dev)/ musa / mlir-ascend 세 저장소 모두 모니터링 기간 내 커밋 없음(최신 각각 10-16, 09-30, 10-19), 신규 tag 없음
tile-ai/TileRT / tilescale / DeepStack 세 저장소 모두 모니터링 기간 내 커밋 없음(최신 각각 09-24, 08-25, 10-05)
deepseek-ai/TileKernels / QwenLM/FlashQLA 모두 커밋 없음, 최신 푸시 모두 10-14에 멈춤
tilelang.github.io / TileOPs.github.io 각각 7회 / 1회 자동 업데이트, 모두 메인 저장소 병합에 따라 트리거됨
TileOPs-nightly 기본 브랜치는 08-30 이후 신규 커밋 없음, pushed_at 변동은 비기본 브랜치에서 발생
Google News(중영문 다수 조합)/ Hacker News / arXiv 모니터링 기간 내 세 편의 산업 보도는 Huawei-DeepSeek 협업을 다룸, SemiAnalysis 기사 한 편만 TileLang 전용 장 포함; arXiv 최신 관련 논문은 여전히 07-24

보충 설명: Hygon 라인의 푸시는 기본 브랜치가 아니며, 판정 방법은 먼저 feat/ 브랜치의 커밋 흐름을 가져온 뒤 저장소 이벤트 API로 PushEvent의 ref와 before→head를 대조하는 것이다; TileOPs-nightly의 pushed_at 변동도 같은 방법으로 제외한다. 심사 중 건수는 각 저장소의 is:open 검색 총수를 사용하고, 모니터링 기간 내 업데이트 수는 updated:>=모니터링 기간 시작점 검색 총수를 사용한다. 본 모니터링 기간 시작점(10-21 07:00)이전 반나절 동안 반영된 커밋은 이전 회차 리포트에서 다루었으며, 이번 회차에서는 중복 집계하지 않는다.

전체 출처 목록