pymc-devs / pymc-devs/pytensor
Remove old amdlib code
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 644
- Forks
- 208
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 16
Description
Description
Some of our ScalarOps have amd_float32 and amd_float64 properties to be used by the Elemwise C-code in contiguous cases. These operators like amd_vrda_log correspond to an old / sunsetted amd math library: https://en.wikipedia.org/wiki/AMD_Core_Math_Library
The changes were introduced in 2013
The code is also untested (and I think broken). We should remove it for now. SIMD is a deep rabbit hole of its own. If someone wanted to work on this, it would probably make sense to use something modern and more portable like google's Highway: https://github.com/google/highway
This is what numpy is transitioting towards for their SIMD use-cases
It is also available on conda-forge and thus much easier for end-users to install.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the ScalarOps definitions with amd_float32 and amd_float64 properties and the corresponding amd_vrda_log-style references used by the Elemwise C-code for contiguous cases. Remove the obsolete AMD math-library code and verify that the existing test suite still passes; SIMD replacement with Google Highway is outside this issue's scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python
- Domain
- performance
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100