MHLO에서 StableHLO를 부트스트랩하면 프리프린팅, 검증, 도형 추론을 비롯한 많은 항목의 MHLO 구현을 상속했습니다. 그 덕분에 이미 추천사항이 상당 부분 접수되고 있지만 기존 구현이 완전한지 검토하고 존재하지 않는 경우 새로운 구현을 제공해야 할 일이 여전히 많이 있습니다.
이 실시간 문서는 개발자와 사용자가 opset의 다양한 측면(사양, 검증, 유형 추론, 프리티 프린팅, 인터프리터 등)의 진행 상황을 추적할 수 있도록 작성되었습니다.
활용 방법
해당 열에서 언급된 특정 관점에 대한 StableHLO 작업의 진행 상황은 다음 추적 라벨 중 하나를 사용하여 추적됩니다.
- 일반 라벨
- 예: 포괄적인 구현이 있습니다.
- 아니요: 구현은 없지만, 이를 해결하기 위한 작업은 로드맵의 일부입니다. ODS에서 이미 일부 인증을 구현했으므로 인증 도구에 '아니요'라는 라벨을 지정할 수 없습니다.
- 인증 도구 및 유형 추론을 위한 맞춤설정된 라벨
- 예: 구현이 있으며 StableHLO 시맨틱스와 동기화됩니다.
- yes*: 구현이 있으며 XLA 시맨틱스와 동기화됩니다. XLA 의미 체계가 문서화되지 않는 경우가 많으므로 hlo_verifier.cc와 shape_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_barrier
outfeed
pad
recv
reduce
reduce_scatter
reduce_window
reverse
scatter
select_and_scatter
send
slice
sort
transpose
tuple
uniform_dequantized
while