-
-
Notifications
You must be signed in to change notification settings - Fork 256
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
CUDA not enabled in builds of OpenJ9 for Windows #2272
Comments
Found the problem. Script bug. Working on a fix. Details:
Is not removing the space like it is expected to, and as such the subsequent call to "cygpath -u" splits the string at the space and returns two paths, neither of which are valid for the -f "does this file exist" check. |
Is there an easy way to inspect whether CUDA is enabled in an OpenJ9 JDK? Asking because of adoptium/aqa-tests#2024. |
Sure. Go to the build job and search for --enable-cuda in the config command. |
@adamfarley That's not what I'm asking. I want to know whether CUDA is enabled by looking at a downloaded JDK. Is there any property set? |
I don't know. I only know where cuda is enabled in the config args due to keith's links. |
@keithc-ca Maybe you know. And if you could tell us which platforms/versions should have CUDA enabled, that would help towards catching regressions like that in the future. |
As for this issue, the problem appears to be that most/all of our Windows machines lack shortened versions of either the "C:/Program Files" folder or the "C:/Program Files/NVIDIA GPU Computing Toolkit" folders, but not both. The code then fails to find the "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/include/cuda.h" file, thinks you have no cuda, and simply declines to add the --enable-cuda configuration flag. However, while this seems like a bug, it has the effect of protecting us from potentially failing later on when we fail to correctly deal with all parts of a single configure argument that has spaces inside of it (see #2279). So, while I could solve this by making "both of these folders must have shortened names available on all Windows machines" an infrastructure issue and hefting it over the fence, I think the right play here is to reconfigure this code to use the unshortened folder names that have spaces in it, and to solve #2279 so that we can pass it into the build scripts proper as a configure argument. |
After some discussion, it was pointed out that having a space makes this path make-incompatible, so we're probably better off with the infrastructure short-names solution. Will raise an infrastructure issue, and once that's resolved we can add a PR for this issue that checks for spaces after the short-name substitution operation; thus creating the error message we should have had in the first place when this started happening. Infra issue to prevent shortname issue in the future: adoptium/infrastructure#1729 PR to check for this issue ever happening again: #2283 |
Besides running a program that actually uses an available GPU, you can check by looking for the string 'cudart' in j9prt29.dll. For example, the 0.21.0 release supports CUDA:
while the 0.23.0 release does not:
|
Ok, cuda is now enabled in Windows 64bit builds using openj9, as of last night's nightlies. |
Yep this looks ok to me now. Closing :-) |
Windows builds with OpenJ9 used to have CUDA enabled, and apparently still anticipate including that capability (see [1] and [2]).
Recent builds (e.g. openj9-0.23.0) do not include CUDA support.
[1] https://github.com/AdoptOpenJDK/openjdk-build/blob/master/build-farm/platform-specific-configurations/windows.sh#L152
[2] https://github.com/AdoptOpenJDK/openjdk-infrastructure/blob/master/ansible/playbooks/AdoptOpenJDK_Windows_Playbook/roles/NVidia_Cuda_Toolkit/tasks/main.yml
The text was updated successfully, but these errors were encountered: