-
Notifications
You must be signed in to change notification settings - Fork 418
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
Fix some issues with the GPU support to enable simple Arkouda builds #20239
Conversation
@stonea -- I did the refactoring we discussed online and some more. This commit has them (with a new function this PR adds). Let me know if you think I went too far and want me to split that commit into its own PR. @mppf -- This commit has the core of the complex-related change in the runtime. I'll do some portability testing there. Do you have any specific concerns as to the configs where what I am doing can be problematic? In your #16847, you just did a full local testing, it looks like. |
@e-kayrakli - I don't have any concerns or specific test configurations to bring up. |
@milthorpe -- This still needs some work, but we'll merge it soon. I'm wondering if you can give it a try to see if you can get a local, no-module Arkouda server built with it? |
I don't think we need to be sticklers for separating refactoring changes out into a separate PR. Having it as a separate commit is nice for software archeology and reviewing purposes so I appreciate that. |
Today I re-tried compiling Arkouda and got this error, which I believe is a known problem:
|
@milthorpe did you get that with this PR applied on |
Oops, I didn't correctly apply the PR. With the PR, I get:
|
Ah, OK. That's good enough for this PR, I think/hope. FWIW, the error you are getting is also a bit surprising but probably not from the GPU support perspective. Do you have a module in your ServerModules.cfg that supports multidimensional arrays in Arkouda? (which I know is something @bmcdonald3 has recently worked on). In any case, this PR causes issues with bunch of other Arkouda modules, too. But you should be able to compile a local, no-module Arkouda server. |
Had a chance to look into this a bit and I confirmed that the error you are running into is from the
So that can be removed by commenting out/deleting that module from the I was able to get Arkouda to compile with GPU support using this patch with all the modules commented out from the build, but it does seem that some of the Arkouda modules still don't build with GPU support unfortunately. There is some documentation about the modular building of Arkouda located at https://github.com/Bears-R-Us/arkouda/blob/master/MODULAR.md, but I am happy to offer more assistance there if it would help. |
Thanks for checking @bmcdonald3!
That's right. I looked at only a few of those modules. It was relatively easy to find the "offending" foralls. And I believe trying to get all the modules to compile is a good stress test for our GPU support down the road. |
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
- Add a new function to check for the new "no gpu codegen" pragma - Store the parent function of the loop in a private field - Refactor the recursive function into a non-recursive wrapper and a recursive, static helper - Remove `allowFnCalls` from the GpuizableLoop interface Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Signed-off-by: Engin Kayraklioglu <e-kayrakli@users.noreply.github.com>
Add the explicit include to runtime's bitops header This was an obvious missing piece from #20239. [Trivial, not reviewed] Test: - [x] standard
This branch makes bunch of small-ish changes in an attempt to get Arkouda to
compile with the GPU locale model. I can separate this into multiple PRs, but I
want to test it some more as a whole. Fixes with this PR:
extern "C"
in the C headers included at the command line.This was proposed by @milthorhpe.
numbers C-based even if we're compiling with C++. (A prior PR that made some
improvements in that direction is
Adjust runtime headers to better handle C++ compilation #16847)
c_string_to_complex*
functions to be included in thegenerated executable, because their return types are no longer
std::complex<>
which you can't link with C linkage.no gpu codegen
pragma to thwart gpuization within some internalfunctions. Currently this only applies to:
chpl__initCopy_shapeHelp
: Has PRIM_ASSIGN that gets normalized aftergpuization, but not resolved. We probably need this function, and the lack
might be preventing us from using loop expressions to initialize arrays on
gpus.
.name
implementation of theGPULocale
type.BitOps
module.gpuTransforms.cpp
a bit.Test:
make check
+ spot checks intypes/complex
withintel
as the host+target compilermake check
+ spot checks intypes/complex
withcray
as the host+target compiler