-
Notifications
You must be signed in to change notification settings - Fork 88
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
[JOSS REVIEW] Functionality Review #597
Comments
Hi devs! I have completed a review of functionality based on JOSS criteria. I had success with the basic reference build that doesn't include OMP and CUDA. The issues that came up, perhaps unsurprisingly, are related to CUDA. I have verified that my machine has the stated requirements and it does have an NVIDIA graphics card, but am having some build issues. I will file a dedicated issue to help resolve this, and it's possible it's simply a configuration issue or something on my machine, as it's a less-used distribution of linux. I use Arch Linux, and see this as a good chance to test the buildability of ginkgo in a potentially new linux environment. Overall, the functionality of the basic reference install is robust and behaves as expected. I feel confident the same will be true of the build with OMP and CUDA once we resolve the errors that come up. |
Thanks for the review!
I can reproduce this (1e-8 instead of 1e-16) and will investigate further :)
Can you take a look at #579 and see if your build issues are related and/or the fix (explicitly specifying an older gcc version) works for you? This seems to be a known issue with Arch Linux and CUDA |
Thank you for the review, @adam-m-jcbs. Thanks @upsj for the quick response! |
#598 was successfully resolved! I'm moving forward with the last few components of the functionality review. |
I was able to do a basic (no CUDA) build and install on Windows! For the purposes of this review, I believe verifying a basic Windows install is sufficient. My Windows partition has limited space for full CUDA testing, but I can verify CUDA components in Linux. I created #600 due to the need for minor manual intervention during a Windows build + install, but I suspect this will be relatively quick to resolve. To finish up the functionality review, I will go back into Linux to verify the 27 pt stencil and the given performance claims. |
Quick update: I'm moving #600 into the documentation review as the Windows build does install and function, just needs a small bit added to the documentation which I believe is being done already. I'm marking the windows install as successful, completing the verification of installation functionality. |
Just a quick FYI: I had to focus on some other things for a bit, but plan to complete the functionality review and file any issues for the other reviews (Docs and Paper) this week (apologies for taking longer on functionality than hoped). In my experience, doc and paper review should be a bit quicker, as I will have less need to build/run/analyze/profile code. |
Unfortunately for my hopes of wrapping things up, I have run into an unexpected new CUDA-related build issue that has delayed me. It is possible my cuda was updated since my last tests, so I've been working on seeing if I created a problem. I have traced the build error to the use of a deprecated cusparse function in |
As mentioned in #613 , as this is an issue introduced by a recent release of CUDA, I think it is reasonable for me to downgrade and finish the functionality review with CUDA 10.x (the version which was current upon JOSS submission). Happily, bringing ginkgo into compliance with CUDA 11 is already being tracked in PR #603 . |
I was able to get things going with CUDA 10.x. Tests passed, the GPU is exercised, and things generally look functional as before. I was able to do some minor performance profiling using the benchmarking facilities provided by Based on this, I am judging the performance to be consistent with claims. The only issue I ran into is that my results for the 27 pt stencil are significantly off from the reference results. I get:
While the expected is |
I did a rebuild to confirm, and still find
My CMakeCache.txt. |
@upsj Perhaps this is related to the preconditioned solver result that changed? Though in this case the error ends up not being near zero (not even for single precision) as it was in the case of residual norms for the preconditioned solvers. |
@adam-m-jcbs , I observe this too. We are working on fixing it. |
@adam-m-jcbs , We decided to remove the 27-pt-stencil solver as an example for now as it did not showcase any specific aspect of Ginkgo that the 9pt and 3pt did not already show and had a difficult to track down bug. We will probably re-write it in the future. But for now I think we can proceed with the review. Thank you for bringing this to our attention. Please refer to #612. |
@pratikvn thanks for bringing to my attention, and apologies that I haven't had time to validate until today. I have confirmed that #612 resolves the only remaining functionality issue. Given that documentation and the paper have already been approved in my review, my recommendation will be for acceptance, as you satisfy all JOSS criteria! I will update the other issues associated with this review shortly. Also, I appreciate the improvements to the benchmarking documentation. More codes should provide such robust tools for evaluating, comparing, and validating performance. This adds tremendous value to your public codebase and sets an example for others developing openly, in my view. |
@adam-m-jcbs , thank you. We greatly appreciate your thorough review and your constructive comments on various aspects of the library. It has definitely helped us improve Ginkgo. |
Adds more detailed information on how to benchmark Ginkgo. Thanks Adam Jacobs for his useful review process for the JOSS paper which pointed to a lack of documentation on how to benchmark Ginkgo. Summary: + Detail a bit how to use `ssget` and what to watch out for. + Add a benchmark overview section with the most important options. + Optionally detail a little how to interact with the GPE after obtaining benchmark results as well as what to watch out for. + Detail a little how to obtain more detailed information as well as how to debug Ginkgo through loggers. + Update the available options in the script. + In addition, I try to change the way we generate the `run_all_benchmarks.sh` script in order to give the proper rights to this file by default (execution `x` access). Related issue: #597 Related PR: #619
This issue is part of a JOSS review, tracked in-project with issue #479 (paper) and #478 (library and features).
To streamline reviewing, I'm creating this meta-issue that addresses all of the functionality criteria for a JOSS review. Specific functionality issues will also be created that link back to this.
Once this meta-issue closes, all functionality requirements for the JOSS review will be met.
Install works as outlined
Software achieves functionality claims
I'm mostly evaluating this by verifying examples and tests.
Performance - any performance claims made are verified
ctest
and other provided tests to see basic performance matches reference performance given within variation of machinesThe text was updated successfully, but these errors were encountered: