GNU bug report logs - #68871
Can't use od to print half-precision floats

Previous Next

Package: coreutils;

Reported by: "Rozenberg, Eyal (Consultant)" <Eyal.Rozenberg <at> gehealthcare.com>

Date: Thu, 1 Feb 2024 14:28:02 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Pádraig Brady <P <at> draigBrady.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#68871: closed (Can't use od to print half-precision floats)
Date: Sun, 04 Feb 2024 15:01:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 4 Feb 2024 15:00:19 +0000
with message-id <4e371b3c-d71c-5aed-1b82-c890adf5658f <at> draigBrady.com>
and subject line Re: bug#68871: Can't use od to print half-precision floats
has caused the debbugs.gnu.org bug report #68871,
regarding Can't use od to print half-precision floats
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
68871: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68871
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: "Rozenberg, Eyal (Consultant)" <Eyal.Rozenberg <at> gehealthcare.com>
To: "bug-coreutils <at> gnu.org" <bug-coreutils <at> gnu.org>
Subject: Can't use od to print half-precision floats
Date: Thu, 1 Feb 2024 12:43:47 +0000
[Message part 3 (text/plain, inline)]
If I try to use the od utility to print half-precision (FP16) floating-point values, I get:

$ od -t f2 myfloats.bin
od: invalid type string 'f2';
this system doesn't provide a 2-byte floating point type

I'm not exactly sure what "this system" means, but that should work and print out my floats.

Eyal

PS - This is my first bug-coreutils post, please be gentle.
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Pádraig Brady <P <at> draigBrady.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>,
 "Rozenberg, Eyal (Consultant)" <Eyal.Rozenberg <at> gehealthcare.com>,
 68871-done <at> debbugs.gnu.org
Subject: Re: bug#68871: Can't use od to print half-precision floats
Date: Sun, 4 Feb 2024 15:00:19 +0000
[Message part 6 (text/plain, inline)]
On 02/02/2024 01:47, Paul Eggert wrote:
> On 2/1/24 13:59, Pádraig Brady wrote:
>>
>> bfloat16 looks like a truncated single precision IEEE,
>> so we should be able to just pad the extra 16 bits with zeros
>> when converting to single precision internally for processing.
> 
> Sounds good. This would mean od could work even the platform doesn't
> support bfloat16_t, since od.c could fall back on the above code (though
> I suppose it could be endianness-dependent).

I see that __bf16 is supported by released versions of gcc and clang,
so rather than add conversion complexity to the core od print loop,
the attached relies on compiler support for _Float16 and __bf16 types,
which compilers will expand to more targets going forward.

I tested the attached on:

gcc 13, clang 17 x86 (Both types supported)
gcc 7 aarch64 (Only -fH supported)
gcc 13 ppc(be) (Neither supported (both will be with GCC 14))

I'll commit this later.
Marking this bug as done.

thanks,
Pádraig
[od-half-float.patch (text/x-patch, attachment)]

This bug report was last modified 1 year and 164 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.