-
Notifications
You must be signed in to change notification settings - Fork 221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPU Batch 5 #1167
GPU Batch 5 #1167
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1167 +/- ##
========================================
Coverage 94.07% 94.08%
========================================
Files 780 780
Lines 65764 65797 +33
========================================
+ Hits 61867 61904 +37
+ Misses 3897 3893 -4
... and 3 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
@jzmaddock Can you see any reason why Windows platforms would not like the diffs for |
This is really awesome to see! Thanks for the ping @dschmitz89. In scipy/scipy#20785 (comment), you had said From a stats maintenance perspective, I would be sad to see scipy dropping boost due to array API concerns. Their implementations of special functions for statistical purposes are a great resource for us, not mentioning their responsiveness to our issues. and I'd replied something to the effect that if Boost also supported GPU execution for special functions, then we could keep using Boost's special functions in SciPy without having to maintain separate implementations for other array libraries. @jzmaddock thought that was reasonable and now here we are. I'll play around with getting Boost special functions working in CuPy, and it looks like we'll be able to use them directly there, and aso use them internally in the |
I think Albert's summary is pretty good. @jzmaddock has a quite old PR adding CUDA support here: #127 so I have been extracting from and expanding on that. The development on this repo: https://github.com/cppalliance/cuda-math since my employer can only directly add GPU enabled CI there, and then cherry picking onto boost proper. Two questions for you two @dschmitz89 and @steppi
|
I think this is great too! I'll let @steppi answer any specific prioritization of functions, but the ones you've done so far look good to me. I think we really only care about CUDA for now, but others may think differently. @mborland I wanted to throw in one point though. Are you testing these using just nvcc, or nvrtc as well? nvrtc is CUDA's runtime (JIT) compiler, and is what CuPy uses for instance. It has more stringent requirements... |
I’m trying to figure out root finding that will work well on GPU now. I’ll keep you posted on my progress. |
Right now it's just NVCC but we can look into adding NVRTC as well. Tracked here: cppalliance/cuda-math#7.
Cool. Thank you |
Nice that the conversation is starting. :) On the SciPy side I would defer to @steppi for all technical details as I don't have expertise in CUDA or special function computations. |
Feel free to open further issues/discussion here or downstream at: https://github.com/cppalliance/cuda-math. Either way it will get seen. Only CI failure is from codecov so I am going to merge this one in. |
Adds GPU support to: sqrt1pm1, erf, erfc, erf_inv, erfc_inv, powm1, lgamma, tgamma, and associated gamma functions.
Removes recursion from lgamma and tgamma by adding dispatch functions to handle the reflection case.