Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support double-precision floating point #321

Open
2 of 6 tasks
kpet opened this issue Apr 2, 2019 · 2 comments
Open
2 of 6 tasks

Support double-precision floating point #321

kpet opened this issue Apr 2, 2019 · 2 comments

Comments

@kpet
Copy link
Contributor

kpet commented Apr 2, 2019

clspv generally doesn't have support for double-precision floating point. The following at least are missing:

kpet added a commit to kpet/clspv that referenced this issue Apr 3, 2019
Fixes google#157.

Contributes to google#321.

Signed-off-by: Kévin Petit <kpet@free.fr>
alan-baker pushed a commit that referenced this issue Apr 4, 2019
Fixes #157.

Contributes to #321.

Signed-off-by: Kévin Petit <kpet@free.fr>
@Trass3r
Copy link

Trass3r commented Dec 15, 2020

add support for double to the built-in functions

Do they need to be emulated?
Currently some are mapped to ExtInsts (like here) which are not specified for fp64:
https://www.khronos.org/registry/spir-v/specs/unified1/GLSL.std.450.html#_extended_instructions

@Cazadorro
Copy link

add support for double to the built-in functions

Do they need to be emulated? Currently some are mapped to ExtInsts (like here) which are not specified for fp64: https://www.khronos.org/registry/spir-v/specs/unified1/GLSL.std.450.html#_extended_instructions

I know this is years late, but my understanding is that none of the current desktop GPU makers have hardware accelerated double precision trigonometry (ie they don't have special function units for). Nvidia appears to only have single precision SFU, even on their server GPUs.

This means "emulated" double precision functions are literally how special functions are handled on Nvidia cards (aside from basic arithmetic operations). Note not all double precision functions need to be "emulated" https://registry.khronos.org/SPIR-V/specs/unified1/GLSL.std.450.html#_introduction

For GLSL functions, this means Trig, Log, Pow, and Exp functions all required to be "emulated", for OpenCL, additional functions would need to be emulated (like gamma etc...).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants