Provide heuristic-based fallback mode for conv algo search
#2,108 建立於 2023年10月3日
倉庫指標
- Star
- (1,408 star)
- PR 合併指標
- (平均合併 5天 5小時) (30 天內合併 16 個 PR)
描述
Is your feature request related to a problem? Please describe.
Startup time caused by repeated algorithm searches has been a long-standing issue when running CNNs on GPU in Julia. It would be nice to have a way to bypass the overhead of such searches while still maintaining some semblance of performance.
Describe the solution you'd like
By default, PyTorch does not perform an algorithm search and instead uses some default fallback. Ref. the cuDNN v7 and v8 API using code paths which handle this.
Describe alternatives you've considered
The main alternative would be caching saved configurations to disk for further use as mentioned in https://github.com/JuliaGPU/CUDA.jl/issues/1947. However, the specifics of how to persist the cache may take some time and effort to figure out. Given that PyTorch has yet to implement something similar on their end, I assume the design would be non-trivial.
Additional context
Somewhat interestingly, MIOpen provides a built-in caching mechanism for this purpose. Unfortunately cuDNN does not appear to, but perhaps they will feel pressure to add something similar eventually. In either case, having a fallback which doesn't require cache priming feels like a good idea.