-
Notifications
You must be signed in to change notification settings - Fork 915
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
jitify 2 support #7372
jitify 2 support #7372
Conversation
rerun tests |
Codecov Report
@@ Coverage Diff @@
## branch-0.19 #7372 +/- ##
===============================================
+ Coverage 81.86% 82.74% +0.88%
===============================================
Files 101 103 +2
Lines 16884 17700 +816
===============================================
+ Hits 13822 14646 +824
+ Misses 3062 3054 -8
Continue to review full report at Codecov.
|
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.
LGTM 👍
I believe @cwharris has one more addition related to the in-memory cache before we should merge this |
ready for re-review. |
@gpucibot merge |
This pr upgrades to jitify2. To accomplish this, we adopt jitify's new `ProgramCache` API, which handles in-memory and disk caching, allowing us to delete our jit caching code, and simplifying our jit kernel launches. Kernels and headers which were previously stringified at compile time and assembled together in cudf code at run time are now preprocessed using a new `jitify_preprocess` utility at compile time, which produces a single file per kernel that can be de-serialized in to a jitify program. kernel source files which have been serialized with jitifiy_preprocess include all associated headers, and jitify resolves these automatically at jit time. It also allows us to override individual headers on a per-compilation basis. This override is what we can use to inject runtime code (udfs), rather than manually concatenating strings. I'm currently working on a bug where jitify is unable to obtain a file lock - disk caching is disable until that is fixed. Hoping to get that fixed here in the next few hours. Authors: - Christopher Harris (https://github.com/cwharris) Approvers: - Robert Maynard (https://github.com/robertmaynard) - Devavret Makkar (https://github.com/devavret) - Keith Kraus (https://github.com/kkraus14) - Paul Taylor (https://github.com/trxcllnt) URL: rapidsai#7372
This pr upgrades to jitify2. To accomplish this, we adopt jitify's new
ProgramCache
API, which handles in-memory and disk caching, allowing us to delete our jit caching code, and simplifying our jit kernel launches. Kernels and headers which were previously stringified at compile time and assembled together in cudf code at run time are now preprocessed using a newjitify_preprocess
utility at compile time, which produces a single file per kernel that can be de-serialized in to a jitify program. kernel source files which have been serialized with jitifiy_preprocess include all associated headers, and jitify resolves these automatically at jit time. It also allows us to override individual headers on a per-compilation basis. This override is what we can use to inject runtime code (udfs), rather than manually concatenating strings.I'm currently working on a bug where jitify is unable to obtain a file lock - disk caching is disable until that is fixed. Hoping to get that fixed here in the next few hours.