Comments (8)
Thank you for the issue. We'll start working on this in the coming weeks.
from onemkl.
I'm looking at this at the moment. A challenging aspect is providing pre-commit estimates of workspace size. This is because rocFFT (and perhaps other future backends) do not support workspace estimates, only exact workspace requirements after committing.
- What is the usecase for pre-commit workspace estimates?
- Do we need pre-commit estimates at all?
- Do these estimates need to be conservative?
Thanks!
from onemkl.
Hi @hjabird , I noticed that https://github.com/ROCmSoftwarePlatform/hipFFT/blob/ef5eb0d5facf9d997b00bb0b94c8e37791b72ce4/library/src/amd_detail/hipfft.cpp#L1150 uses hipfftGetSize1d
to implement hipfftEstimate1d
which is the migrated result of cufftEstimate1d
with HIPFIY.
It just queries the actual workspace size after creating a plan and destroys the plan before return.
from onemkl.
Hi @zhiweij1, that is an option, but creating a plan just to query workspace size is an expensive thing to do. Especially if you then create that exact same plan once again on commit!
At the moment I don't understand the scenario in which you use an estimate instead of committing a descriptor and getting the exact workspace requirement from that. In such a scenario, does the estimate need to be conservative (if not, we could introduce some kind of heuristic for rocFFT's workspace requirements, or just return 0)?
The specification may be a better place to continue this discussion. I've created a spec issue uxlfoundation/oneAPI-spec#508 and also a draft PR in the spec uxlfoundation/oneAPI-spec#509
from onemkl.
@zhiweij1 I've had some feedback on the above linked PR. It would be great to have your feedback too, especially since it doesn't include the estimation feature right now. It doesn't included this feature since I'm not sure how it would be used (and so what to specify), as stated in my above comment.
from onemkl.
Hi @hjabird, the uxlfoundation/oneAPI-spec#509 LGTM.
from onemkl.
As a timeline on this:
- I believe above spec PR needs to be discussed by the Math SIG before it can be merged. I hope this can take place in early December, but obviously it is subject to availablity, scheduling, holidays in the US, etc.
- I've already started work on adding support for the above spec to oneMKL, but it won't make sense to until the spec is merged.
So long as no problems or delays are encountered, hopefully external workspaces will be added in early December. I'll try to keep this issue updated.
from onemkl.
Happy new year!: both the spec and implementation are now merged!
from onemkl.
Related Issues (20)
- -DENABLE_CUFFT_BACKEND missing from documentation HOT 1
- [Build][Docs] Improve build documentation HOT 14
- Outdated conan installation instructions HOT 2
- Consider creating oneMKL releases HOT 5
- dlopen libOpenCL by SONAME to support split prefix distributions HOT 3
- Kernel verification failure during execution of axpby with complex float inputs HOT 6
- Request to implement lapack::gesv HOT 3
- Missing function rng::device::generate_single HOT 1
- Request to add compute_mode parameter for BLAS level 3 APIs (and their extensions)
- mklcpu backend is broken with adaptiveCPP
- [BLAS] Netlib backend fails to compile with AdaptiveCpp
- [BLAS] rocBLAS backend test can fail with HSA_STATUS_ERROR_INVALID_PACKET_FORMAT
- [DFT][MKLGPU] Use FWD_ and BWD_STRIDES for MKLGPU 2024.1
- [DFT] Use FWD_ and BWD_STRIDE API
- [BLAS] Wrong namespace usage in BLAS Documentation HOT 5
- pthreads not found HOT 4
- [DFT] compute_forward (forward_ip_rr) function template in forward.hpp overrides compute_forward (forward_op_cc) if in and out types are the same HOT 9
- How to setup CMakeLists to use OneMKL on a GPU (Intel Arc/Nvidia sm_89) HOT 7
- Implement CuBlas/MKL int8, float mixed precision gemm_batch
- Examples fail to build with AdaptiveCpp HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onemkl.