elodw
2014-07-11 11:27:25 UTC
Hello Andreas and all the World,
with
import pycuda.gpuarray as gpuarray
import pycuda.driver as drv
import pycuda.autoinit
import numpy
import sys
from pycuda.tools import mark_cuda_test
from pycuda.characterize import has_double_support
from pycuda.compiler import SourceModule
.....
....
zzz=gpuarray.sum(pow(yyy-xxx,2)) -------Error statement
....
....
i get the following error message:
Traceback (most recent call last):
File "/home/brust/PyCUDA/matmul17.py", line 36, in <module>
zzz=gpuarray.sum(pow(yyy-xxx,2))
File "/usr/lib/python2.7/dist-packages/pycuda/gpuarray.py", line 623,
in __pow__
func = elementwise.get_pow_kernel(self.dtype)
File "<string>", line 2, in get_pow_kernel
File "/usr/lib/python2.7/dist-packages/pycuda/tools.py", line 404, in
context_dependent_memoize
result = func(*args)
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
549, in get_pow_kernel
"pow_method")
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
165, in get_elwise_kernel
arguments, operation, name, keep, options, **kwargs)
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
151, in get_elwise_kernel_and_types
keep, options, **kwargs)
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
75, in get_elwise_module
options=options, keep=keep)
File "/usr/lib/python2.7/dist-packages/pycuda/compiler.py", line 262,
in __init__
arch, code, cache_dir, include_dirs)
File "/usr/lib/python2.7/dist-packages/pycuda/compiler.py", line 252,
in compile
return compile_plain(source, options, keep, nvcc, cache_dir)
File "/usr/lib/python2.7/dist-packages/pycuda/compiler.py", line 134,
in compile_plain
cmdline, stdout=stdout.decode("utf-8"), stderr=stderr.decode("utf-8"))
pycuda.driver.CompileError: nvcc compilation of /tmp/tmpKjK3Px/kernel.cu
failed
[command: nvcc --cubin -arch sm_20
-I/usr/lib/python2.7/dist-packages/pycuda/cuda kernel.cu]
[stderr:
/usr/lib/python2.7/dist-packages/pycuda/cuda/pycuda-complex.hpp(553):
warning: a __host__ function("pycuda::complex<float>::complex")
redeclared with __device__, hence treated as a __host__ __device__ function
kernel.cu(19): error: calling a __host__ function("std::pow<long, long>
") from a __global__ function("pow_method") is not allowed
1 error detected in the compilation of
"/tmp/tmpxft_00000c21_00000000-6_kernel.cpp1.ii".
]
zzz=gpuarray.sum((yyy-xxx)*(yyy-xxx))
works well.
And another question:
Is there a sqrt-Function?
Thanks in advance
Ernst
with
import pycuda.gpuarray as gpuarray
import pycuda.driver as drv
import pycuda.autoinit
import numpy
import sys
from pycuda.tools import mark_cuda_test
from pycuda.characterize import has_double_support
from pycuda.compiler import SourceModule
.....
....
zzz=gpuarray.sum(pow(yyy-xxx,2)) -------Error statement
....
....
i get the following error message:
Traceback (most recent call last):
File "/home/brust/PyCUDA/matmul17.py", line 36, in <module>
zzz=gpuarray.sum(pow(yyy-xxx,2))
File "/usr/lib/python2.7/dist-packages/pycuda/gpuarray.py", line 623,
in __pow__
func = elementwise.get_pow_kernel(self.dtype)
File "<string>", line 2, in get_pow_kernel
File "/usr/lib/python2.7/dist-packages/pycuda/tools.py", line 404, in
context_dependent_memoize
result = func(*args)
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
549, in get_pow_kernel
"pow_method")
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
165, in get_elwise_kernel
arguments, operation, name, keep, options, **kwargs)
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
151, in get_elwise_kernel_and_types
keep, options, **kwargs)
File "/usr/lib/python2.7/dist-packages/pycuda/elementwise.py", line
75, in get_elwise_module
options=options, keep=keep)
File "/usr/lib/python2.7/dist-packages/pycuda/compiler.py", line 262,
in __init__
arch, code, cache_dir, include_dirs)
File "/usr/lib/python2.7/dist-packages/pycuda/compiler.py", line 252,
in compile
return compile_plain(source, options, keep, nvcc, cache_dir)
File "/usr/lib/python2.7/dist-packages/pycuda/compiler.py", line 134,
in compile_plain
cmdline, stdout=stdout.decode("utf-8"), stderr=stderr.decode("utf-8"))
pycuda.driver.CompileError: nvcc compilation of /tmp/tmpKjK3Px/kernel.cu
failed
[command: nvcc --cubin -arch sm_20
-I/usr/lib/python2.7/dist-packages/pycuda/cuda kernel.cu]
[stderr:
/usr/lib/python2.7/dist-packages/pycuda/cuda/pycuda-complex.hpp(553):
warning: a __host__ function("pycuda::complex<float>::complex")
redeclared with __device__, hence treated as a __host__ __device__ function
kernel.cu(19): error: calling a __host__ function("std::pow<long, long>
") from a __global__ function("pow_method") is not allowed
1 error detected in the compilation of
"/tmp/tmpxft_00000c21_00000000-6_kernel.cpp1.ii".
]
zzz=gpuarray.sum((yyy-xxx)*(yyy-xxx))
works well.
And another question:
Is there a sqrt-Function?
Thanks in advance
Ernst