tests : add bit-level DT3 tests and Rust parity driver
test-dt3 checks the layout against an independent packer written from the format spec: single-trit position mapping for all 256 (plane, pos) pairs, structural byte-position checks at the region boundaries (79/80, 119/120), exact round-trips with negative scales, byte parity of the in-tree quantizer on already-ternary inputs, and the vec_dot against a hand-made sum over the known trits (catches any path that reads the padding 5th trit of the qh bytes). test-dt3-rust-parity.py packs known trits with ternaria's pack_dt3 and verifies that dequantize_row_dt3 (via test-dt3 --dequant) reproduces d1*t1 + d2*t2 bit-exactly. Also wires DT3 into the test-quantize-fns thresholds (ternary class).
This commit is contained in:
4 files changed
+498
-1
No files matched your search
@@ -158,6 +158,7 @@ static int test_vec_dot_q(bool verbose) {
|
||||
type == GGML_TYPE_Q1_0 ? MAX_QUANTIZATION_TOTAL_ERROR_BINARY :
|
||||
type == GGML_TYPE_TQ1_0 ? MAX_QUANTIZATION_TOTAL_ERROR_TERNARY :
|
||||
type == GGML_TYPE_TQ2_0 ? MAX_QUANTIZATION_TOTAL_ERROR_TERNARY :
|
||||
type == GGML_TYPE_DT3 ? MAX_QUANTIZATION_TOTAL_ERROR_TERNARY :
|
||||
type == GGML_TYPE_Q2_0 ? MAX_QUANTIZATION_TOTAL_ERROR_TERNARY :
|
||||
type == GGML_TYPE_Q2_K ? MAX_QUANTIZATION_TOTAL_ERROR_2BITS :
|
||||
type == GGML_TYPE_IQ2_S ? MAX_QUANTIZATION_TOTAL_ERROR_2BITS :
|
||||
@@ -184,7 +185,7 @@ static int test_vec_dot_q(bool verbose) {
|
||||
? MAX_DOT_PRODUCT_ERROR_LOWBIT
|
||||
: type == GGML_TYPE_Q1_0
|
||||
? MAX_DOT_PRODUCT_ERROR_BINARY
|
||||
: type == GGML_TYPE_TQ1_0 || type == GGML_TYPE_TQ2_0 || type == GGML_TYPE_Q2_0
|
||||
: type == GGML_TYPE_TQ1_0 || type == GGML_TYPE_TQ2_0 || type == GGML_TYPE_Q2_0 || type == GGML_TYPE_DT3
|
||||
? MAX_DOT_PRODUCT_ERROR_TERNARY
|
||||
: type == GGML_TYPE_NVFP4
|
||||
? MAX_DOT_PRODUCT_ERROR_FP4
|
||||
|
||||
Reference in new issue
Block a user