Summary: | unsupported call to function erf when running GROMACS with OpenCL | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vedran Miletić <vedran> |
Component: | Mesa core | Assignee: | Vedran Miletić <vedran> |
Status: | RESOLVED FIXED | QA Contact: | mesa-dev |
Severity: | major | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | GMX comment out atomics |
Description
Vedran Miletić
2015-12-14 19:13:27 UTC
Looks like libclc does not yet implement the erf function. erfc is implemented, but not plain erf. The amd-builtins branch in libclc looks like there's an erf implementation that can be ported over: https://llvm.org/svn/llvm-project/libclc/branches/amd-builtins/amd-builtins/math32/erfF.cl The double implementation will need to be ported as well. Note that it looks like the AMD implementation of erf requires doubles if subnormals are NOT supported... If that's an issue for someone, we'll need a workaround for that. (In reply to Aaron Watry from comment #1) > Looks like libclc does not yet implement the erf function. Neat, the approach you suggest seems to be simpler than the one I had in mind, analogous to ldexp http://reviews.llvm.org/D14990 > Note that it looks like the AMD implementation of erf requires doubles if > subnormals are NOT supported... If that's an issue for someone, we'll need a > workaround for that. erff() from GROMACS works without doubles: https://github.com/gromacs/gromacs/blob/fab0108c88e441d891d838bb81ca879ff9708317/src/gromacs/math/utilities.cpp Not sure if it's usable in this form, I would have to look. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.