conda-forge / conda-forge/tensorflow-feedstock
Unbundling oneDNN
- Dominant language
- Shell
- Stars
- 93
- Forks
- 93
- PR merge metrics
- No merged PRs in 30d
Description
Breaking out the discussion from #175:
> @njzjz: Currently tensorflow here is not built against MKL (OneDNN), but do we plan to?
> @xhochy: Tensorflow is building oneDNN from source in the build currently. That is probably the first 1-2h of CI. Getting that from the feedstock instead of building from source would help a lot.
I looked at how upstream builds this, and - annoyingly - it's a bit of a mess. There seem to be three different versions of onednn being [pulled](https://github.com/tensorflow/tensorflow/blob/v2.7.0/tensorflow/workspace2.bzl#L177-L208) in, with one of them (0.21.3) being quite [old](https://github.com/oneapi-src/oneDNN/releases/tag/v0.21.3) and not [available](https://anaconda.org/conda-forge/onednn/files?sort=time&sort_order=asc) in conda-forge.
I'm happy to start a PR that tries to rip things and see how far we get, but just wanted to get an opinion (@xhochy?) if replacing the upstream version is even realistic given the different versions? Or maybe we just remove the most important one?
Contributor guide
Research direction
Start by reading the upstream TensorFlow references in tensorflow/workspace2.bzl, especially lines 177-208, and compare the three oneDNN versions with the conda-forge package availability linked in the issue. Done means establishing whether the feedstock package can replace the source-built dependencies without incompatible version requirements or identifying which upstream dependency can be removed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- tensorflow
- Domain
- build-system, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100