From 82aebcf0d989ca3736a5bd53885a857101430828 Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Mon, 29 Apr 2024 14:31:47 -0700 Subject: [PATCH] Add BF16 code for new ggml_validate_row_data() function --- ggml-quants.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ggml-quants.c b/ggml-quants.c index 444d1e55ebd54..9883b6f8cabbb 100644 --- a/ggml-quants.c +++ b/ggml-quants.c @@ -12450,6 +12450,24 @@ bool ggml_validate_row_data(enum ggml_type type, const void * data, size_t nbyte const size_t nb = nbytes/ggml_type_size(type); switch (type) { + case GGML_TYPE_BF16: + { + int nans = 0; + int infs = 0; + const unsigned short * f = (const unsigned short *) data; + for (size_t i = 0; i < nb; ++i) { + nans += (f[i] & 0x7fff) > 0x7f80; + infs += (f[i] & 0x7fff) == 0x7f80; + } + if (nans) { + fprintf(stderr, "%s: found %d NaNs in row of %zu BF16 values\n", __func__, nans, nb); + return false; + } + if (infs) { + fprintf(stderr, "%s: found %d infinities in row of %zu BF16 values\n", __func__, infs, nb); + return false; + } + } break; case GGML_TYPE_F16: { const ggml_fp16_t * f = (const ggml_fp16_t *) data;