////

런타임 기능 지원 여부는 실제 도구·리소스 존재성에 기반해 노출한다

백엔드가 특정 기능을 지원한다고 보고할 때는 부분 구성만 확인하지 말고 실행에 필요한 모든 외부 바이너리, allocator, scratch buffer, capture 제약을 검증해야 한다. 특히 GPU/JIT/그래프 캡처 경로에서는 동적 할당이나 빈 tool path가 나중에 모호한 런타임 에러로 폭발하므로 capability check와 리소스 준비를 보수적으로 설계해야 한다.

////

Summary#

백엔드가 특정 기능을 지원한다고 보고할 때는 부분 구성만 확인하지 말고 실행에 필요한 모든 외부 바이너리, allocator, scratch buffer, capture 제약을 검증해야 한다. 특히 GPU/JIT/그래프 캡처 경로에서는 동적 할당이나 빈 tool path가 나중에 모호한 런타임 에러로 폭발하므로 capability check와 리소스 준비를 보수적으로 설계해야 한다.

Problem#

TensorFlow/XLA GPU PR에서 ptxas는 있지만 nvlink가 없는 환경에서도 CompileAndLink 지원을 true로 보고해 빈 경로를 exec하고 misleading JIT error가 발생했다. 또 RAFT select_k 실행 중 StreamExecutor allocator를 통한 동적 device allocation/deallocation이 CUDA Graph capture와 XLA CommandBuffer 통합을 막았다.

Solution#

Supports* 메서드는 실제 필요한 tool path와 실행 가능성을 모두 확인한 결과만 반환하고, 일부 도구가 없으면 해당 provider가 선택되지 않게 한다. 그래프 캡처나 command buffer에 들어갈 연산은 실행 중 host-side dynamic allocation을 제거하고, HLO scratch buffer 등 사전 할당된 명시적 workspace를 전달하는 구조로 바꾼다.

Failure Modes#

  • 부분 dependency만 보고 capability를 true로 반환해 downstream 선택 로직이 잘못된 backend를 사용
  • 빈 문자열 path나 누락된 binary 실행으로 원인과 다른 JIT/session 에러 노출
  • stream execution 중 동적 할당이 발생해 CUDA Graph capture 또는 command buffer 호환성 상실
  • fallback 경로와 에러 메시지가 실제 누락 리소스를 명확히 알려주지 않음

Sources#

  • https://github.com/tensorflow/tensorflow/pull/127491
  • https://github.com/tensorflow/tensorflow/pull/127433
  • https://github.com/tensorflow/tensorflow/pull/127282
  • https://github.com/tensorflow/tensorflow/pull/127343
  • https://github.com/tensorflow/tensorflow/pull/127333
  • https://github.com/tensorflow/tensorflow/pull/127418
  • https://github.com/tensorflow/tensorflow/pull/127286
  • https://github.com/tensorflow/tensorflow/pull/126192
  • https://github.com/tensorflow/tensorflow/pull/127358
  • https://github.com/tensorflow/tensorflow/pull/127283
  • https://github.com/tensorflow/tensorflow/pull/127419
  • https://github.com/tensorflow/tensorflow/pull/127408
  • https://github.com/huggingface/transformers/pull/48760
  • https://github.com/huggingface/transformers/pull/48853
  • https://github.com/huggingface/transformers/pull/48846
  • https://github.com/huggingface/transformers/pull/48809
  • https://github.com/huggingface/transformers/pull/48798
  • https://github.com/huggingface/transformers/pull/48660
  • https://github.com/huggingface/transformers/pull/48852
  • https://github.com/huggingface/transformers/pull/48652
  • https://github.com/tinode/chat/pull/1014
  • https://github.com/tinode/chat/pull/1009
  • https://github.com/tinode/chat/pull/1007
  • https://github.com/tinode/chat/pull/1006
  • https://github.com/tinode/chat/pull/1003
  • https://github.com/tinode/chat/pull/1004
  • https://github.com/tinode/chat/pull/1001
  • https://github.com/tinode/chat/pull/1005
  • https://github.com/tinode/chat/pull/1002
  • https://github.com/tinode/chat/pull/998
  • https://github.com/tinode/chat/pull/997
  • https://github.com/heroiclabs/nakama/pull/2554
  • https://github.com/heroiclabs/nakama/pull/2551
  • https://github.com/heroiclabs/nakama/pull/2532
  • https://github.com/heroiclabs/nakama/pull/2533
  • https://github.com/heroiclabs/nakama/pull/2536
  • https://github.com/heroiclabs/nakama/pull/2539
  • https://github.com/heroiclabs/nakama/pull/2541
  • https://github.com/heroiclabs/nakama/pull/2538
  • https://github.com/heroiclabs/nakama/pull/2540
  • https://github.com/heroiclabs/nakama/pull/2542
  • mined_at: 2026-09-16T11:38:53Z

Sagwan Revalidation 2026-09-16T12:17:22Z#

  • verdict: ok
  • note: 런타임 capability를 실제 의존 리소스로 검증하라는 원칙은 여전히 유효함

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1