-
Notifications
You must be signed in to change notification settings - Fork 29
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
Issue #249. OCLTrans() generates OpenCL kernels (also fixes fparser2 stmt_fns) #387
Conversation
Codecov Report
@@ Coverage Diff @@
## master #387 +/- ##
==========================================
+ Coverage 97.55% 97.56% +<.01%
==========================================
Files 24 24
Lines 10245 10273 +28
==========================================
+ Hits 9995 10023 +28
Misses 250 250
Continue to review full report at Codecov.
|
…49_OCLTransKernels
@arporter This PR is ready for review. This is a set of small changes for the OCLTrans() transformation to automatically generate the kernels associated with OpenCL PSy-layer. These are:
|
@arporter Argh, sorry, 1 more commit to bring this up to master. But it is ready if it passes the tests. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All looks good.
Documentation has been updated and all three guides build OK.
I have some minor comments - see inline.
Main issues are that I get 5 test failures when running the test suite in parallel with compilation testing enabled (--compile and --compileopencl). Also, with Rupert's imminent change to fparser, it will no longer produce Statement_Function objects in the Parse Tree so one test will need updating.
I'll check pylint next time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only minor things left now plus a need to update the documentation to be a bit clearer about what happens when creating OpenCL kernels.
Once those things are done, this is ready to go.
@arporter Ready for next review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Almost, almost there. I was going to accept it until I discovered that we now have an XPASSing test (a test marked as xfail that now passes). This is test_module_inline_and_compile
in gocean1p0_transformations_test.py. Given how hard this was to find I suggest we change the default behaviour of pytest so that an XPASS is reported as a failure. We can do this by adding:
# Ensure that any XPASS ("unexpectedly passing") results are reported
# as failures in the test suite.
[tool:pytest]
xfail_strict=true
to the PSyclone/setup.cfg
file. Would you mind doing this here?
There are also a few tiny things that need fixing - see inline.
@arporter Ready for the next review, I made the changes we discussed this morning. |
This PR (based on issue #249 ) enables the automatic generation of OpenCL kernels referenced by the FortCL PSy layer. This works for the examples/gocean/eg3 and NemoLite2D (both needed a temporal fix for the array assignments wrongly parsed as statement functions by fparser2)