summaryrefslogtreecommitdiff
path: root/sci-libs/cholmod/files/cholmod-3.0.14-fix-CUDA.patch
blob: 75cdee80bfe15017dc671fcce870f57c460b9f00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
https://bugs.gentoo.org/715610#c16
https://bugs.gentoo.org/attachment.cgi?id=749631

--- cholmod-3.0.14.old/GPU/Makefile.am	2020-09-29 22:59:54.000000000 +0300
+++ cholmod-3.0.14/GPU/Makefile.am	2021-11-09 02:20:06.579908785 +0300
@@ -11,7 +11,7 @@
 libcholmodl_gpu_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
 
 libcholmod_gpu_la_SOURCES = cholmod_gpu_kernels.cu
-libcholmod_gpu_la_LIBADD = libcholmodi_gpu.la libcholmodl_gpu.la
+libcholmod_gpu_la_LIBADD = libcholmodi_gpu.la libcholmodl_gpu.la cholmod_gpu_kernels.o
 
-.cu.lo:
-	$(LIBTOOL) --tag=CC --mode=compile $(NVCC) -c $<
+.cu.o:
+	$(NVCC) $(NVCCFLAGS) -o $@ -c $<
--- cholmod-3.0.14.old/GPU/cholmod_gpu.h	1970-01-01 03:00:00.000000000 +0300
+++ cholmod-3.0.14/GPU/cholmod_gpu.h	2021-11-08 12:13:12.018328369 +0300
@@ -0,0 +1,80 @@
+/* ========================================================================== */
+/* === Include/cholmod_gpu.h ================================================ */
+/* ========================================================================== */
+
+/* -----------------------------------------------------------------------------
+ * CHOLMOD/Include/cholmod_gpu.h.
+ * Copyright (C) 2014, Timothy A. Davis
+ * http://www.suitesparse.com
+ * -------------------------------------------------------------------------- */
+
+/* CHOLMOD GPU module
+ */
+
+#ifndef CHOLMOD_GPU_H
+#define CHOLMOD_GPU_H
+
+#ifdef GPU_BLAS
+#include "omp.h"
+#include <fenv.h>
+#ifndef SUITESPARSE_GPU_EXTERN_ON
+#include <cuda.h>
+#include <cuda_runtime.h>
+#endif
+#endif
+
+/* CHOLMOD_GPU_PRINTF: for printing GPU debug error messages */
+/*
+#define CHOLMOD_GPU_PRINTF(args) printf args
+*/
+#define CHOLMOD_GPU_PRINTF(args)
+
+/* define supernode requirements for processing on GPU */
+#define CHOLMOD_ND_ROW_LIMIT 256 /* required descendant rows */
+#define CHOLMOD_ND_COL_LIMIT 32  /* required descendnat cols */
+#define CHOLMOD_POTRF_LIMIT  512  /* required cols for POTRF & TRSM on GPU */
+
+/* # of host supernodes to perform before checking for free pinned buffers */
+#define CHOLMOD_GPU_SKIP     3    
+
+#define CHOLMOD_HANDLE_CUDA_ERROR(e,s) {if (e) {ERROR(CHOLMOD_GPU_PROBLEM,s);}}
+
+typedef struct cholmod_gpu_pointers
+{
+    double *h_Lx [CHOLMOD_HOST_SUPERNODE_BUFFERS] ;
+    double *d_Lx [CHOLMOD_DEVICE_STREAMS] ;
+    double *d_C ;
+    double *d_A [CHOLMOD_DEVICE_STREAMS] ;
+    void   *d_Ls ;
+    void   *d_Map ;
+    void   *d_RelativeMap ;
+
+} cholmod_gpu_pointers ;
+
+int cholmod_gpu_memorysize   /* GPU memory size available, 1 if no GPU */
+(
+    size_t         *total_mem,
+    size_t         *available_mem,
+    cholmod_common *Common
+) ;
+
+int cholmod_l_gpu_memorysize /* GPU memory size available, 1 if no GPU */
+(
+    size_t         *total_mem,
+    size_t         *available_mem,
+    cholmod_common *Common
+) ;
+ 
+int cholmod_gpu_probe   ( cholmod_common *Common ) ;
+int cholmod_l_gpu_probe ( cholmod_common *Common ) ;
+
+int cholmod_gpu_deallocate   ( cholmod_common *Common ) ;
+int cholmod_l_gpu_deallocate ( cholmod_common *Common ) ;
+
+void cholmod_gpu_end   ( cholmod_common *Common ) ;
+void cholmod_l_gpu_end ( cholmod_common *Common ) ;
+
+int cholmod_gpu_allocate   ( cholmod_common *Common ) ;
+int cholmod_l_gpu_allocate ( cholmod_common *Common ) ;
+
+#endif
--- cholmod-3.0.14.old/configure.ac	2020-09-29 22:59:54.000000000 +0300
+++ cholmod-3.0.14/configure.ac	2021-11-08 12:17:00.865381081 +0300
@@ -80,6 +80,7 @@
 		NVCC,
 		nvcc,,)
     AC_SUBST([NVCC])
+    AC_SUBST([NVCCFLAGS])
     AX_CHECK_PKG_LIB(
 		[cublas],
 		[cublas_v2.h],