Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Molenkamp <github@lazydodo.com>2018-02-03 20:59:09 +0300
committerRay Molenkamp <github@lazydodo.com>2018-02-03 20:59:09 +0300
commita5052770b85fefe00511886429e6fc1f5056e1e8 (patch)
tree5dbe529f230833e71ee2504657ccec32364f4a01 /extern/cuew
parentdb989e1f118071aae6dcd9f29d10182bd5ebed0b (diff)
cycles: Add an nvrtc based cubin cli compiler.
nvcc is very picky regarding compiler versions, severely limiting the compiler we can use, this commit adds a nvrtc based compiler that'll allow us to build the cubins even if the host compiler is unsupported. for details see D2913. Differential Revision: http://developer.blender.org/D2913
Diffstat (limited to 'extern/cuew')
-rw-r--r--extern/cuew/include/cuew.h1
-rw-r--r--extern/cuew/src/cuew.c11
2 files changed, 11 insertions, 1 deletions
diff --git a/extern/cuew/include/cuew.h b/extern/cuew/include/cuew.h
index 0eace96bc3f..f5009d4f2c7 100644
--- a/extern/cuew/include/cuew.h
+++ b/extern/cuew/include/cuew.h
@@ -1323,6 +1323,7 @@ int cuewInit(void);
const char *cuewErrorString(CUresult result);
const char *cuewCompilerPath(void);
int cuewCompilerVersion(void);
+int cuewNvrtcVersion(void);
#ifdef __cplusplus
}
diff --git a/extern/cuew/src/cuew.c b/extern/cuew/src/cuew.c
index 962059bfcce..b68dc597049 100644
--- a/extern/cuew/src/cuew.c
+++ b/extern/cuew/src/cuew.c
@@ -329,7 +329,7 @@ int cuewInit(void) {
#ifdef _WIN32
/* Expected in c:/windows/system or similar, no path needed. */
const char *cuda_paths[] = {"nvcuda.dll", NULL};
- const char *nvrtc_paths[] = {"nvrtc.dll", NULL};
+ const char *nvrtc_paths[] = {"nvrtc64_80.dll", "nvrtc64_90.dll", "nvrtc64_91.dll", NULL};
#elif defined(__APPLE__)
/* Default installation path. */
const char *cuda_paths[] = {"/usr/local/cuda/lib/libcuda.dylib", NULL};
@@ -766,6 +766,15 @@ const char *cuewCompilerPath(void) {
return NULL;
}
+int cuewNvrtcVersion(void) {
+ int major, minor;
+ if (nvrtcVersion) {
+ nvrtcVersion(&major, &minor);
+ return 10 * major + minor;
+ }
+ return 0;
+}
+
int cuewCompilerVersion(void) {
const char *path = cuewCompilerPath();
const char *marker = "Cuda compilation tools, release ";