Lines Matching refs:self

7   def __init__(self, framework):  argument
8 config.package.CMakePackage.__init__(self, framework)
9 self.gitcommit = '5.0.2'
10 self.minversion = '4.3.00'
11 self.versionname = 'KOKKOS_VERSION'
12self.download = ['git://https://github.com/kokkos/kokkos.git','https://github.com/kokkos/k…
13 self.downloaddirnames = ['kokkos']
14self.excludedDirs = ['kokkos-kernels'] # Do not wrongly think kokkos-kernels as kokkos-vernum
15 self.includes = ['Kokkos_Macros.hpp']
16 self.liblist = [['libkokkoscontainers.a','libkokkoscore.a','libkokkossimd.a'],
18 self.functions = ['']
19self.functionsCxx = [1,'namespace Kokkos {void initialize(int&,char*[]);}','int one = 1;char* …
20 self.minCxxVersion = 'c++20'
21self.buildLanguages = ['Cxx'] # Depending on if cuda, hip or sycl is available, it will be modif…
22 self.hastests = 1
23 self.requiresrpath = 1
24 self.precisions = ['single','double']
25self.devicePackage = 1 # we treat Kokkos as a device package, though it might run without GPUs.
26 self.minCmakeVersion = (3,16,0)
27self.macros = ['KOKKOS_ENABLE_THREADS', 'KOKKOS_ENABLE_CUDA', 'KOKKOS_ENABLE_HIP', 'KOKK…
30 def __str__(self): argument
31 output = config.package.CMakePackage.__str__(self)
32 if hasattr(self,'system'): output += ' Backends: '+str(self.system)+'\n'
35 def setupHelp(self, help): argument
37 config.package.CMakePackage.setupHelp(self, help)
41 def setupDependencies(self, framework): argument
42 config.package.CMakePackage.setupDependencies(self, framework)
43 self.externalpackagesdir = framework.require('PETSc.options.externalpackagesdir',self)
44 self.compilerFlags = framework.require('config.compilerFlags', self)
45 self.setCompilers = framework.require('config.setCompilers', self)
46 self.cxxlibs = framework.require('config.packages.cxxlibs',self)
47 self.deps = [self.cxxlibs]
48 self.openmp = framework.require('config.packages.OpenMP',self)
49 self.cuda = framework.require('config.packages.CUDA',self)
50 self.hip = framework.require('config.packages.HIP',self)
51 self.sycl = framework.require('config.packages.SYCL',self)
52 self.hwloc = framework.require('config.packages.hwloc',self)
53 self.mpi = framework.require('config.packages.MPI',self)
54 self.odeps = [self.mpi,self.openmp,self.hwloc,self.cuda,self.hip]
57 def versionToStandardForm(self,ver): argument
62 def toString(self,string): argument
63 string = self.libraries.toString(string)
64 if self.requiresrpath: return string
71 def formCMakeConfigureArgs(self): argument
72 args = config.package.CMakePackage.formCMakeConfigureArgs(self)
81 if not self.compilerFlags.debugging:
84 if self.mpi.found and not self.mpi.usingMPIUni:
87 if self.hwloc.found:
89 args.append('-DKokkos_HWLOC_DIR='+self.hwloc.directory)
91 self.system = ['Serial']
93 if self.argDB['download-kokkos-cxx-std-threads']:
95 self.system.append('C++ Threads')
96 if self.openmp.found:
98 self.system.append('OpenMP')
102 if self.cuda.found:
112 self.system.append('CUDA')
113 self.pushLanguage('CUDA')
114 petscNvcc = self.getCompiler()
115 cudaFlags = self.updatePackageCUDAFlags(self.getCompilerFlags())
116 self.popLanguage()
117 args = self.rmArgsStartsWith(args, '-DCMAKE_CUDA_COMPILER')
118 args = self.rmArgsStartsWith(args, '-DCMAKE_CUDA_FLAGS')
119 args = self.rmArgsStartsWith(args, '-DCMAKE_C_COMPILER')
120 args = self.rmArgsStartsWith(args, '-DCMAKE_C_FLAGS')
121 args = self.rmArgsStartsWith(args, '-DCMAKE_CXX_COMPILER')
122 if self.cuda.cudaclang:
123 args = self.rmArgsStartsWith(args, '-DCMAKE_CXX_FLAGS')
128 args = self.rmArgsStartsWith(args,'-DCMAKE_CXX_COMPILER=')
132 …args.append('-DCMAKE_CXX_COMPILER='+self.getCompiler('Cxx')) # use the host CXX compiler, let Kokk…
141 if hasattr(self.cuda,'cudaArch'):
153 gen = self.cuda.cudaArchSingle() # cudaArchSingle() returns a number, such as '75' or '120'
161 deviceArchName = foundName + self.cuda.cudaArchSingle()
163 …raise RuntimeError('Could not find a Kokkos arch name for CUDA gen number '+ self.cuda.cudaArchSin…
166 elif self.hip.found:
168 self.system.append('HIP')
170 with self.Language('HIP'):
171 petscHipc = self.getCompiler()
172 hipFlags = self.updatePackageCxxFlags(self.getCompilerFlags())
176 self.getExecutable(petscHipc,getFullPath=1,resultName='systemHipc')
177 if not hasattr(self,'systemHipc'):
179 args = self.rmArgsStartsWith(args,'-DCMAKE_CXX_COMPILER=')
180 args.append('-DCMAKE_CXX_COMPILER='+self.systemHipc)
181 args = self.rmArgsStartsWith(args, '-DCMAKE_CXX_FLAGS')
184 deviceArchName = 'AMD_' + self.hip.hipArch.upper()
185 if self.hip.unifiedMemory: deviceArchName += '_APU'
187 elif self.sycl.found:
189 self.system.append('SYCL')
191 with self.Language('SYCL'):
192 petscSyclc = self.getCompiler()
193 self.getExecutable(petscSyclc,getFullPath=1,resultName='systemSyclc')
194 if not hasattr(self,'systemSyclc'):
196 args = self.rmArgsStartsWith(args,'-DCMAKE_CXX_COMPILER=')
197 args.append('-DCMAKE_CXX_COMPILER='+self.systemSyclc)
200 if hasattr(self.sycl,'syclArch') and self.sycl.syclArch != 'x86_64':
201 deviceArchName = 'INTEL_' + self.sycl.syclArch.upper() # Ex. map xehp to INTEL_XEHP
205 langdialect = getattr(self.setCompilers,lang+'dialect',None)
209 args = self.rmArgsStartsWith(args,'-DCMAKE_CXX_STANDARD=')
213 def configureLibrary(self): argument
215 if self.cuda.found:
216 self.buildLanguages = ['CUDA']
217 oldFlags = self.setCompilers.CUDAPPFLAGS
218 if self.cuda.cudaclang:
219self.addMakeMacro('KOKKOS_USE_CUDACLANG_COMPILER',1) # use the clang compiler to compile PETSc Kok…
221self.addMakeMacro('KOKKOS_USE_CUDA_COMPILER',1) # use the CUDA compiler to compile PETSc Kokkos co…
222 self.setCompilers.CUDAPPFLAGS += " -ccbin " + self.getCompiler('Cxx')
223 elif self.hip.found:
224 self.buildLanguages= ['HIP']
225self.addMakeMacro('KOKKOS_USE_HIP_COMPILER',1) # use the HIP compiler to compile PETSc Kokkos code
226 elif self.sycl.found:
227 self.buildLanguages= ['SYCL']
228 self.setCompilers.SYCLPPFLAGS += " -Wno-deprecated-declarations "
229self.setCompilers.SYCLFLAGS += ' -fno-sycl-id-queries-fit-in-int -fsycl-unnamed-lambda '
230 self.addMakeMacro('KOKKOS_USE_SYCL_COMPILER',1)
232 self.addDefine('HAVE_KOKKOS_WITHOUT_GPU', 1) # Kokkos is used without GPUs (i.e., host only)
234 config.package.CMakePackage.configureLibrary(self)
236 if self.cuda.found:
237 self.addMakeMacro('KOKKOS_BIN',os.path.join(self.directory,'bin'))
238 self.logWrite('Checking if Kokkos is configured with CUDA lambda\n')
239 self.pushLanguage('CUDA')
247 self.compilers.CUDAPPFLAGS += ' '+self.headers.toString(self.include)
248 if self.checkPreprocess(cuda_lambda_test):
249 self.logPrint('Kokkos is configured with CUDA lambda\n')
252 self.setCompilers.CUDAPPFLAGS = oldFlags
253 self.popLanguage()