Skip to content

Commit 632624e

Browse files
committed
Add BF16 code for new ggml_validate_row_data() function
1 parent 2741a99 commit 632624e

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Diff for: ggml-quants.c

+18
Original file line numberDiff line numberDiff line change
@@ -12450,6 +12450,24 @@ bool ggml_validate_row_data(enum ggml_type type, const void * data, size_t nbyte
1245012450
const size_t nb = nbytes/ggml_type_size(type);
1245112451

1245212452
switch (type) {
12453+
case GGML_TYPE_BF16:
12454+
{
12455+
int nans = 0;
12456+
int infs = 0;
12457+
const unsigned short * f = (const unsigned short *) data;
12458+
for (size_t i = 0; i < nb; ++i) {
12459+
nans += (f[i] & 0x7fff) > 0x7f80;
12460+
infs += (f[i] & 0x7fff) == 0x7f80;
12461+
}
12462+
if (nans) {
12463+
fprintf(stderr, "%s: found %d NaNs in row of %zu BF16 values\n", __func__, nans, nb);
12464+
return false;
12465+
}
12466+
if (infs) {
12467+
fprintf(stderr, "%s: found %d infinities in row of %zu BF16 values\n", __func__, infs, nb);
12468+
return false;
12469+
}
12470+
} break;
1245312471
case GGML_TYPE_F16:
1245412472
{
1245512473
const ggml_fp16_t * f = (const ggml_fp16_t *) data;

0 commit comments

Comments
 (0)