NVCC compilation failure, couette flow 2d

Hi all,

I currently install Pyfr 1.7.0 on ubuntu 16.04. The graphic card is GTX 1080 (8G CUSTKIT).

Following are the errors I get, it seems like there is a key error in “pyfr/util.py” and "nvcc fatal : Value ‘sm_61’ is not defined for option ‘gpu-architecture’ ".

Thank you in advance if anyone could help me out.

Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/pyfr/util.py", line 33, in __call__
res = cache[key]
KeyError: (<function CUDAKernelProvider._build_kernel at 0x7f567046e488>, b'\x80\x03X\t\x00\x00\x00gimmik_mmq\x00X\xc4\x07\x00\x00\n__global__ void\ngimmik_mm(int n,\n const double* __restrict__ b, int ldb,\n double* __restrict__ c, int ldc)\n{\n int i = blockDim.x*blockIdx.x + threadIdx.x;\n double dotp;\n\n if (i < n)\n {\n dotp = 1.4788305577012362*b[i + 0*ldb] + -0.6666666666666665*b[i + 3*ldb] + 0.18783610896543057*b[i + 6*ldb];\n c[i + 0*ldc] = dotp;\n dotp = 1.4788305577012362*b[i + 1*ldb] + -0.6666666666666665*b[i + 4*ldb] + 0.18783610896543057*b[i + 7*ldb];\n c[i + 1*ldc] = dotp;\n dotp = 1.4788305577012362*b[i + 2*ldb] + -0.6666666666666665*b[i + 5*ldb] + 0.18783610896543057*b[i + 8*ldb];\n c[i + 2*ldc] = dotp;\n dotp = 0.18783610896543057*b[i + 0*ldb] + -0.6666666666666665*b[i + 1*ldb] + 1.4788305577012362*b[i + 2*ldb];\n c[i + 3*ldc] = dotp;\n dotp = 0.18783610896543057*b[i + 3*ldb] + -0.6666666666666665*b[i + 4*ldb] + 1.4788305577012362*b[i + 5*ldb];\n c[i + 4*ldc] = dotp;\n dotp = 0.18783610896543057*b[i + 6*ldb] + -0.6666666666666665*b[i + 7*ldb] + 1.4788305577012362*b[i + 8*ldb];\n c[i + 5*ldc] = dotp;\n dotp = 0.18783610896543057*b[i + 0*ldb] + -0.6666666666666665*b[i + 3*ldb] + 1.4788305577012362*b[i + 6*ldb];\n c[i + 6*ldc] = dotp;\n dotp = 0.18783610896543057*b[i + 1*ldb] + -0.6666666666666665*b[i + 4*ldb] + 1.4788305577012362*b[i + 7*ldb];\n c[i + 7*ldc] = dotp;\n dotp = 0.18783610896543057*b[i + 2*ldb] + -0.6666666666666665*b[i + 5*ldb] + 1.4788305577012362*b[i + 8*ldb];\n c[i + 8*ldc] = dotp;\n dotp = 1.4788305577012362*b[i + 0*ldb] + -0.6666666666666665*b[i + 1*ldb] + 0.18783610896543057*b[i + 2*ldb];\n c[i + 9*ldc] = dotp;\n dotp = 1.4788305577012362*b[i + 3*ldb] + -0.6666666666666665*b[i + 4*ldb] + 0.18783610896543057*b[i + 5*ldb];\n c[i + 10*ldc] = dotp;\n dotp = 1.4788305577012362*b[i + 6*ldb] + -0.6666666666666665*b[i + 7*ldb] + 0.18783610896543057*b[i + 8*ldb];\n c[i + 11*ldc] = dotp;\n }\n}\nq\x01X\x05\x00\x00\x00iPiPiq\x02\x87q\x03.', b'\x80\x03}q\x00.')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/pyfr", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python3.6/site-packages/pyfr/__main__.py", line 110, in main
args.process(args)
File "/usr/local/lib/python3.6/site-packages/pyfr/__main__.py", line 235, in process_run
args, NativeReader(args.mesh), None, Inifile.load(args.cfg)
File "/usr/local/lib/python3.6/site-packages/pyfr/__main__.py", line 216, in _process_common
solver = get_solver(backend, rallocs, mesh, soln, cfg)
File "/usr/local/lib/python3.6/site-packages/pyfr/solvers/__init__.py", line 16, in get_solver
return get_integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
File "/usr/local/lib/python3.6/site-packages/pyfr/integrators/__init__.py", line 46, in get_integrator
return integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
File "/usr/local/lib/python3.6/site-packages/pyfr/integrators/std/controllers.py", line 14, in __init__
super().__init__(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyfr/integrators/std/steppers.py", line 8, in __init__
super().__init__(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyfr/integrators/std/base.py", line 10, in __init__
super().__init__(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyfr/integrators/base.py", line 58, in __init__
self._init_system(systemcls, backend, rallocs, mesh, initsoln)
File "/usr/local/lib/python3.6/site-packages/pyfr/integrators/base.py", line 88, in _init_system
self.system = systemcls(*args, nreg=self.nreg, cfg=self.cfg)
File "/usr/local/lib/python3.6/site-packages/pyfr/solvers/base/system.py", line 65, in __init__
self._gen_kernels(eles, int_inters, mpi_inters, bc_inters)
File "/usr/local/lib/python3.6/site-packages/pyfr/solvers/base/system.py", line 174, in _gen_kernels
kernels[pn, kn].append(kgetter())
File "/usr/local/lib/python3.6/site-packages/pyfr/solvers/baseadvec/elements.py", line 57, in <lambda>
out=self._scal_fpts
File "/usr/local/lib/python3.6/site-packages/pyfr/backends/base/backend.py", line 166, in kernel
return kern(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyfr/backends/cuda/gimmik.py", line 36, in mul
fun = self._build_kernel('gimmik_mm', src, 'iPiPi')
File "/usr/local/lib/python3.6/site-packages/pyfr/util.py", line 35, in __call__
res = cache[key] = self.func(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pyfr/backends/cuda/provider.py", line 20, in _build_kernel
fun = compiler.SourceModule(src).get_function(name)
File "/usr/local/lib/python3.6/site-packages/pycuda/compiler.py", line 291, in __init__
arch, code, cache_dir, include_dirs)
File "/usr/local/lib/python3.6/site-packages/pycuda/compiler.py", line 255, in compile
return compile_plain(source, options, keep, nvcc, cache_dir, target)
File "/usr/local/lib/python3.6/site-packages/pycuda/compiler.py", line 137, in compile_plain
stderr=stderr.decode("utf-8", "replace"))
pycuda.driver.CompileError: nvcc compilation of /tmp/tmp8yfregj9/kernel.cu failed
[command: nvcc --cubin -arch sm_61 -I/usr/local/lib/python3.6/site-packages/pycuda/cuda kernel.cu]
[stderr:
nvcc fatal : Value 'sm_61' is not defined for option 'gpu-architecture'
]

Cheers,
Sam

Hi Sam,

Which version of CUDA are you using? As mentioned in this SO answer, it seems only CUDA >= 8.0 supports sm_61 architectures.

Nolan