1. 연산 개요
Comparison 은 두 값 사이의 관계가 참인지 거짓인지 판정하는 연산
가장 기본적인 형태
- p_i = x_i < z_i
출력 p_i 는 숫자값 자체가 아니라 조건의 참, 거짓을 나타낸다.
Comparison 은 그 자체로 최종 출력을 만들 수도 있지만, 주로 다음 연산의 조건으로 사용된다.
- relu
- clamp
- maximum, minimum
- mask gen
- selection
- conditional value update
- boundary check
- loop exit condition
- spare cal
- attention masking
- dropout maks gen
- argmax
- sorting
- thresholding
산술값을 직접 변환하기보다, 데이터가 어떤 경로를 따라야 하는지를 결정하는 predicate 를 생성
2. 기본 수학적 정의
출력은 논리적으로 boolean 이지만 실제 하드웨어에서는 다음 형태 중 하나로 표현될 수 있다.
- predicate register
- 0 or 1 의 integer
- Bit mask
- Warp-level mask
- Condition code
- Branch condition
실행 계층에서는 여러 표현이 가능하다.
3. Unary Comparison
일부 비교는 명시적으로 두 입력을 받지만, 한 입력을 상수와 비교하는 단항 조건처럼 사용된다.
이 구조는 relu 와 threshold 연산의 기반이 된다.
4. Tensor-Tensor Comparison
동일 shape 두 입력 텐서 비교
5. Scaler Comparison
하나의 scalar 와 비교 가능
6. Braodcasting Comparison
다른 입력 shape 일 경우 braodcasting 적용 가능
7. 입출력 domain
입력은 일반적으로 수치형 또는 순서 관계가 정의된 값
출력은 논리적으로 boolean domain 을 가진다
하지만 저장 형태는 다양할 수 있다. 또는 별도 predicate register 로만 존재 가능
8. 데이터 의존성
같은 위치의 두 입력에 의존, 병렬 실행 가능
하지만 그 결과를 사용하는 방식이 실행 구조를 복잡하게 만들 수 있다.
9. Comparision 결과의 두 가지 사용 방식
9.1 Data-flow 방식
Predict 를 값 선택에 사용
branch 없이 selection 명령으로 lowering 가능,
9.2 Control-flow 방식
Predicate 를 branch 조건으로 사용한다.
같은 comparison 이라도 후속 사용 방ㅇ식에 따라 실행 비용과 GPU divergence 가 달라진다.
10. 의미 불변성
구현이 달라져도 다음 조건은 유지되어야 한다.
10.1 비교 관계
사용된 관계까 정확히 보존되어야 한다.
10.2 Operand 대응 관계
같은 논리적 위치의 값이 비교되어야 한다.
10.3 Output truth semantics
출력의 물리적 표현이 달라져도 참과 거싲의 의미는 보존되어야 한다.
10.4 특수값 의미
Flothin-point comparison 에서는 NaN 처리 규칙이 연산 의미의 일부, 단순히 수학적 실수 비교만으로 해석해서는 안 된다.
11. 정수 Comparison
- Signed comparison
- Unsigned comparison
의 구분 필요
bit pattern 이 각기 다르게 해석된다.
12. Floating point Comparison
산술 연산처럼 새로운 rounding 을 수행하지는 않지만, 비교 대상 자체가 임 ㅣ부동 소수점 근사값이라는 점이 중요하다.
다른 표현을 가지면 equality 결과가 false 될 수 있음
수학적으로는 같지만, 부동소수점으로 인해 달라질 수 있음.
따라서 수치 알고리즘에서는 equality 비교가 아닌 tolerance 비교 사용 가능 - 하지만 이는 추가 primitive 를 포함
13. NaN 의 의미
정의되지 않거나 표현할 수 없는 수치 결과를 나타냄, 자신을 포함한 그 어떤 값과도 같지 않다.
inequality 는 일반적으로 true 이다.
'SASS_Probe' 카테고리의 다른 글
| 기본 연산 의미 명세 07 - Maximum과 Minimum (0) | 2026.06.23 |
|---|---|
| 기본 연산 의미 명세 06 - Selection (0) | 2026.06.23 |
| 기본 연산 의미 명세 04 - Fused Multiply Add, FMA (0) | 2026.06.22 |
| 기본 연산 의미 명세 03 - Elementwise Multiply (0) | 2026.06.22 |
| 기본 연산 의미 명세 02 - Elementwise Add (0) | 2026.06.21 |