cuda-api-wrappers icon indicating copy to clipboard operation
cuda-api-wrappers copied to clipboard

Integrate or supersede the functionality in nVIDIA's jitify

Open eyalroz opened this issue 5 years ago • 3 comments

NVIDIA's jitify library provides a C++'ish interface to (some of? all of?) the real-time compilation / JIT compilation facilities nVIDIA provides. This library should provide this functionality, in particular; and it doesn't right now. Technically it's separate from the CUDA Runtime API per se, but still.

eyalroz avatar Jan 05 '20 23:01 eyalroz

Jittify has some capabilities we don't. For example - it has some support for reflected instantiation of templates.

Also, need to make sure we offer all of those standard-C-library-header snippets which are device-safe, at least optionally.

Of course, it also has functionality which we specifically want to avoid, like logging to stdout and this weird serialization.

eyalroz avatar Feb 26 '21 22:02 eyalroz

So, this is resolved on the driver-wrappers branch. The reason you're seeing so many notifications here is that that branch gets routinely rebased off of development.

eyalroz avatar Aug 20 '21 07:08 eyalroz

So, what's not covered here, but provided by jitify? Here is a partial list:

  • [ ] Cache of compiled programs which you can lookup in (using names ?)
  • [ ] Name demangling
  • [ ] PTX parsing
  • [ ] NVRTC-compatible versions of standard headers, e.g. for preinclusion: algorithm, assert.h, cassert, cfloat, climits, cmath, complex, cstddef, cstdint, cstdio, cstdlib, cstring, ctime, float.h, iostream, istream, iterator, jitify_preinclude.h, limits, limits.h, math.h, memory.h, mutex, ostream, sstream, stddef.h, stdexcept, stdint.h, stdio.h, stdlib.h, string, string.h, time.h, tuple, type_traits, utility, vector

Headers are certainly outside our scope, plus, jitify's headers make a bunch of assumptions regarding what you need and why you're including some of the headers, which I wouldn't make.

Caching is beyond our scope as well, plus you have some of it by adding modules to the context of your liking.

eyalroz avatar Feb 19 '22 10:02 eyalroz