StableHLO 상태

MHLO에서 StableHLO를 부트스트랩하면 프리프린팅, 검증, 도형 추론을 비롯한 많은 항목의 MHLO 구현을 상속했습니다. 그 덕분에 이미 추천사항이 상당 부분 접수되고 있지만 기존 구현이 완전한지 검토하고 존재하지 않는 경우 새로운 구현을 제공해야 할 일이 여전히 많이 있습니다.

이 실시간 문서는 개발자와 사용자가 opset의 다양한 측면(사양, 검증, 유형 추론, 프리티 프린팅, 인터프리터 등)의 진행 상황을 추적할 수 있도록 작성되었습니다.

활용 방법

해당 열에서 언급된 특정 관점에 대한 StableHLO 작업의 진행 상황은 다음 추적 라벨 중 하나를 사용하여 추적됩니다.

  • 일반 라벨
    • : 포괄적인 구현이 있습니다.
    • 아니요: 구현은 없지만, 이를 해결하기 위한 작업은 로드맵의 일부입니다. ODS에서 이미 일부 인증을 구현했으므로 인증 도구에 '아니요'라는 라벨을 지정할 수 없습니다.
  • 인증 도구 및 유형 추론을 위한 맞춤설정된 라벨
    • : 구현이 있으며 StableHLO 시맨틱스와 동기화됩니다.
    • yes*: 구현이 있으며 XLA 시맨틱스와 동기화됩니다. XLA 의미 체계가 문서화되지 않는 경우가 많으므로 hlo_verifier.ccshape_inference.cc를 참조로 사용합니다.
    • revisit: 구현이 있지만 'yes' 또는 'yes*'에 해당하지 않습니다. 아직 감사하지 않았거나 문제를 발견했기 때문입니다.
    • infeasible: 실행이 불가능하기 때문에 구현이 없습니다. 예를 들어 피연산자와 속성에서 연산의 결과 유형을 추론할 수 없기 때문입니다.

상태

StableHLO 작업 사양 인증 유형 추론 프리티 프린팅 통역
abs
추가
after_all
all_gather 재방문 아니요 아니요
all_reduce 재방문 아니요
all_to_all 재방문 아니요
atan2
batch_norm_grad 재방문 아니요 재방문
batch_norm_inference 재방문 아니요 재방문
batch_norm_training 재방문 아니요 재방문
bitcast_convert 실행할 수 없음
브로드캐스트 아니요 예* 예* 재방문
broadcast_in_dim 실행할 수 없음
케이스 재방문 아니요
cbrt
ceil
콜레스키 재방문
고정하다 재방문
collective_broadcast 재방문 아니요
collective_permute 재방문 아니요
compare
복잡함
복합 실행할 수 없음
concatenate
상수
전환 실행할 수 없음
컨볼루션 실행할 수 없음 재방문
코사인
count_leading_zeros
create_token 아니요 예* 예* 재방문
교차 복제본 합계 아니요 재방문 예* 아니요 재방문
custom_call 실행할 수 없음
나누기
아니요 재방문 실행할 수 없음 재방문
dot_general 재방문 실행할 수 없음 아니요
dynamic_broadcast_in_dim 실행할 수 없음 재방문
dynamic_conv 실행할 수 없음 재방문 재방문
dynamic_gather 실행할 수 없음 아니요 재방문
dynamic_iota 실행할 수 없음 재방문
dynamic_pad 실행할 수 없음 재방문
dynamic_reshape 실행할 수 없음 재방문
dynamic_slice
dynamic_update_slice
einsum 아니요 재방문 아니요 재방문
지수
exponential_minus_one
fft 재방문 아니요
바닥
수집하다 아니요
get_dimension_size
get_tuple_element
if 재방문 아니요
이미지
인피드 실행할 수 없음 아니요
아이오타 실행할 수 없음
is_finite
로그
log_plus_one
물류
지도 재방문 아니요
최대
최소
곱하기
negate
않는
optimization_barrier
사용하여
아웃피드 아니요
패드
partition_id
팝컨트
전력
real
real_dynamic_slice 아니요 재방문 아니요 아니요
Recv 실행할 수 없음 아니요
reduce 재방문 재방문
reduce_precision
reduce_scatter 재방문 아니요 아니요
reduce_window 재방문 아니요
나머지
replica_id
형태 변경 실행할 수 없음
return 아니요 재방문 실행할 수 없음
reverse
RNG 재방문
rng_bit_generator 재방문 실행할 수 없음 재방문
round_nearest_afz
round_nearest_even
RQRT
scatter 재방문 아니요
select
select_and_scatter 재방문 아니요
보내기 아니요
set_dimension_size 아니요 예* 예* 아니요
shift_left
shift_right_arithmetic
shift_right_logical
표지판
사인
slice 아니요
sort 아니요
sqrt
빼기
Tanh
torch_index_select 아니요 재방문 아니요 아니요 재방문
전치
triangular_solve 재방문 아니요 재방문
tuple
unary_einsum 아니요 재방문 아니요 재방문
uniform_dequantize 아니요
uniform_quantize 재방문 실행할 수 없음 아니요
동안 재방문 재방문
XOR

양자화 연산을 위한 유형 추론

위 표의 Type Inference 열은 양자화되지 않은 연산에 중점을 두기 위한 것입니다. 대다수의 양자화 연산에서는 결과 유형의 양자화 매개변수가 피연산자의 양자화 매개변수와 다를 수 있으므로 결과 유형을 추론하는 것이 불가능합니다. 피연산자와 결과 유형이 동일하게 일치해야 하는 몇 가지 경우를 제외하고 작업 유형에 결과 유형을 추론하는 데 유용한 제약 조건이 있는 경우는 예외입니다. all_gather, all_to_all, case, collective_permute, compare, concatenate, constant, dynamic_slice, dynamic_update_slice, gather, get_tuple_element, if, infeed, is_finite, if, infeed, is_finite, {2/case, map, optimization_barrieroutfeedpadrecvreducereduce_scatterreduce_windowreversescatterselect_and_scattersendslicesorttransposetupleuniform_dequantizedwhile