gpyfft icon indicating copy to clipboard operation
gpyfft copied to clipboard

[debian] test error during the build process

Open picca opened this issue 8 years ago • 7 comments

Hello, I try to create a debian package for gpyfft and I get this error message during the build process Your library is a dependency of a project that I need to package

creating build/temp.linux-amd64-3.5/gpyfft
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURC
E=2 -fPIC -I/home/gregor/devel/clFFT/src/include -I/opt/AMDAPPSDK-3.0/include -I/usr/include/python3.5m -c gpyfft/gpyfftlib.c -o build/temp.linux-amd64-3.5/gpyfft/gpyfftlib.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time
 -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-3.5/gpyfft/gpyfftlib.o -L/usr/local/lib64 -lclFFT -o /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gpyfft/gpyfftlib.cpython-35m-x86_64-linux-gnu.so
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:184: cd /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build; python2.7 -m unittest discover -v 
test_1d_inplace (gpyfft.test.test_gpyfft.test_fft) ... ERROR
test_1d_inplace_double (gpyfft.test.test_gpyfft.test_fft) ... ERROR
test_1d_out_of_place (gpyfft.test.test_gpyfft.test_fft) ... ERROR
test_1d_real_to_complex (gpyfft.test.test_gpyfft.test_fft) ... ERROR
test_2d_real_to_complex (gpyfft.test.test_gpyfft.test_fft) ... ERROR
test_2d_real_to_complex_double (gpyfft.test.test_gpyfft.test_fft) ... ERROR
test_basic (gpyfft.test.test_gpyfftlib.test_basic) ... ok
test_create_plan (gpyfft.test.test_gpyfftlib.test_basic) ... ERROR
test_2d_in_4d_out_of_place (gpyfft.test.test_batched.test_fft_batched) ... ERROR
test_2d_out_of_place (gpyfft.test.test_batched.test_fft_batched) ... ERROR
test_callback_post (gpyfft.test.test_callback.TestCallbackPreMul) ... ok
test_callback_pre (gpyfft.test.test_callback.TestCallbackPreMul) ... ok

======================================================================
ERROR: test_1d_inplace (gpyfft.test.test_gpyfft.test_fft)
----------------------------------------------------------------------
TypeError: test_1d_inplace() takes exactly 2 arguments (1 given)

======================================================================
ERROR: test_1d_inplace_double (gpyfft.test.test_gpyfft.test_fft)
----------------------------------------------------------------------
TypeError: test_1d_inplace_double() takes exactly 2 arguments (1 given)

======================================================================
ERROR: test_1d_out_of_place (gpyfft.test.test_gpyfft.test_fft)
----------------------------------------------------------------------
TypeError: test_1d_out_of_place() takes exactly 2 arguments (1 given)

======================================================================
ERROR: test_1d_real_to_complex (gpyfft.test.test_gpyfft.test_fft)
----------------------------------------------------------------------
TypeError: test_1d_real_to_complex() takes exactly 2 arguments (1 given)

======================================================================
ERROR: test_2d_real_to_complex (gpyfft.test.test_gpyfft.test_fft)
----------------------------------------------------------------------
TypeError: test_2d_real_to_complex() takes exactly 2 arguments (1 given)
======================================================================
ERROR: test_2d_real_to_complex_double (gpyfft.test.test_gpyfft.test_fft)
----------------------------------------------------------------------
TypeError: test_2d_real_to_complex_double() takes exactly 2 arguments (1 given)

======================================================================
ERROR: test_create_plan (gpyfft.test.test_gpyfftlib.test_basic)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gpyfft/test/test_gpyfftlib.py", line 24, in test_create_plan
    ctx = get_contexts()[0]
IndexError: list index out of range

======================================================================
ERROR: test_2d_in_4d_out_of_place (gpyfft.test.test_batched.test_fft_batched)
----------------------------------------------------------------------
TypeError: test_2d_in_4d_out_of_place() takes exactly 2 arguments (1 given)

======================================================================
ERROR: test_2d_out_of_place (gpyfft.test.test_batched.test_fft_batched)
----------------------------------------------------------------------
TypeError: test_2d_out_of_place() takes exactly 2 arguments (1 given)

----------------------------------------------------------------------
Ran 12 tests in 0.001s

FAILED (errors=9)
clFFT version: (2, 12, 2)

What is the proble, I worked with the lateste release 0.7.0

thanks for your help

Frederic

picca avatar Sep 28 '17 09:09 picca

Am 28.09.2017 um 11:29 schrieb picca [email protected]:

Hello, I try to create a debian package for gpyfft and I get this error message during the build process Your library is a dependency of a project that I need to package

creating build/temp.linux-amd64-3.5/gpyfft x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURC E=2 -fPIC -I/home/gregor/devel/clFFT/src/include -I/opt/AMDAPPSDK-3.0/include -I/usr/include/python3.5m -c gpyfft/gpyfftlib.c -o build/temp.linux-amd64-3.5/gpyfft/gpyfftlib.o x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-amd64-3.5/gpyfft/gpyfftlib.o -L/usr/local/lib64 -lclFFT -o /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gpyfft/gpyfftlib.cpython-35m-x86_64-linux-gnu.so dh_auto_test -O--buildsystem=pybuild I: pybuild base:184: cd /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_2.7/build; python2.7 -m unittest discover -v

Hi Frederic,

sorry, I have no idea about building Debian packages. But it seems you are building for Python 3.5, but then you call Python 2.7 for the tests, are you sure that is intended?

Also I see that test_basic fails (get_contexts() returns empty list), gpyfft expects a GPU for testing (clfft is not designed to work with OpenCL CPU context)

best Gregor

test_1d_inplace (gpyfft.test.test_gpyfft.test_fft) ... ERROR test_1d_inplace_double (gpyfft.test.test_gpyfft.test_fft) ... ERROR test_1d_out_of_place (gpyfft.test.test_gpyfft.test_fft) ... ERROR test_1d_real_to_complex (gpyfft.test.test_gpyfft.test_fft) ... ERROR test_2d_real_to_complex (gpyfft.test.test_gpyfft.test_fft) ... ERROR test_2d_real_to_complex_double (gpyfft.test.test_gpyfft.test_fft) ... ERROR test_basic (gpyfft.test.test_gpyfftlib.test_basic) ... ok test_create_plan (gpyfft.test.test_gpyfftlib.test_basic) ... ERROR test_2d_in_4d_out_of_place (gpyfft.test.test_batched.test_fft_batched) ... ERROR test_2d_out_of_place (gpyfft.test.test_batched.test_fft_batched) ... ERROR test_callback_post (gpyfft.test.test_callback.TestCallbackPreMul) ... ok test_callback_pre (gpyfft.test.test_callback.TestCallbackPreMul) ... ok

====================================================================== ERROR: test_1d_inplace (gpyfft.test.test_gpyfft.test_fft)

TypeError: test_1d_inplace() takes exactly 2 arguments (1 given)

====================================================================== ERROR: test_1d_inplace_double (gpyfft.test.test_gpyfft.test_fft)

TypeError: test_1d_inplace_double() takes exactly 2 arguments (1 given)

====================================================================== ERROR: test_1d_out_of_place (gpyfft.test.test_gpyfft.test_fft)

TypeError: test_1d_out_of_place() takes exactly 2 arguments (1 given)

====================================================================== ERROR: test_1d_real_to_complex (gpyfft.test.test_gpyfft.test_fft)

TypeError: test_1d_real_to_complex() takes exactly 2 arguments (1 given)

====================================================================== ERROR: test_2d_real_to_complex (gpyfft.test.test_gpyfft.test_fft)

TypeError: test_2d_real_to_complex() takes exactly 2 arguments (1 given)

ERROR: test_2d_real_to_complex_double (gpyfft.test.test_gpyfft.test_fft)

TypeError: test_2d_real_to_complex_double() takes exactly 2 arguments (1 given)

====================================================================== ERROR: test_create_plan (gpyfft.test.test_gpyfftlib.test_basic)

Traceback (most recent call last): File "gpyfft/test/test_gpyfftlib.py", line 24, in test_create_plan ctx = get_contexts()[0] IndexError: list index out of range

====================================================================== ERROR: test_2d_in_4d_out_of_place (gpyfft.test.test_batched.test_fft_batched)

TypeError: test_2d_in_4d_out_of_place() takes exactly 2 arguments (1 given)

====================================================================== ERROR: test_2d_out_of_place (gpyfft.test.test_batched.test_fft_batched)

TypeError: test_2d_out_of_place() takes exactly 2 arguments (1 given)


Ran 12 tests in 0.001s

FAILED (errors=9) clFFT version: (2, 12, 2)

What is the proble, I worked with the lateste release 0.7.0

thanks for your help

Frederic

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/geggo/gpyfft/issues/36, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7Gs9nd6ev2JSY6B9HQPoEV2GE7UbvXks5sm2b0gaJpZM4Pm-mm.

geggo avatar Sep 28 '17 10:09 geggo

In fact my cut and past was misleeding because I copy the end of the build process of the extensions which were for python3.5. So indeed the test are run with the right interpreter in that case 2.7. During the build process all the test will be executed for eeach supported version python2.7 python3.5 and python3.6 for now.

what is worring me is the type error

TypeError: test_2d_real_to_complex() takes exactly 2 arguments (1 given)

it seems that something is wrong in the code.

for the clfft part, is it possible to skip the test instead of failling if no cl device was found.

thanks

picca avatar Sep 28 '17 10:09 picca

Am 28.09.2017 um 12:08 schrieb picca [email protected]:

In fact my cut and past was misleeding because I copy the end of the build process of the extensions which were for python3.5. So indeed the test are run with the right interpreter in that case 2.7. During the build process all the test will be executed for eeach supported version python2.7 python3.5 and python3.6 for now.

what is worring me is the type error

TypeError: test_2d_real_to_complex() takes exactly 2 arguments (1 given)

it seems that something is wrong in the code.

ok, checked that, this error is related to parameterised tests with an empty list of OpenCL contexts (no GPU is installed).

Could not reproduce this kind of failure, (at least) after updating cycles of nose-parametrized and parameterized the tests in test_gpyfft are not executed if I hand in an empty context list.

for the clfft part, is it possible to skip the test instead of failling if no cl device was found.

Since skipping seems to be the default with recent nose_parameterized, I actually added an test that explicitly fails without a GPU present, to get a better error message. Other tests (not yet parameterised) will also continue to fail.

You prefer silently passing tests without GPU? gpyfft is not at all useful without GPU...

Gregor

thanks

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/geggo/gpyfft/issues/36#issuecomment-332791089, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7GsxbxkmyKDe7IR0z-ZEMCL7Am4CJeks5sm3AEgaJpZM4Pm-mm.

geggo avatar Sep 28 '17 12:09 geggo

ok, checked that, this error is related to parameterised tests with an empty list of OpenCL contexts (no GPU is installed).

Could not reproduce this kind of failure, (at least) after updating cycles of nose-parametrized and parameterized the tests in test_gpyfft are not executed if I hand in an empty context list.

ok

You prefer silently passing tests without GPU? gpyfft is not at all useful without GPU...

I think that it would be better to mark these test Skipped. If I remember correctly it is possible to have a decorator which should be added to unittests for this purpose.

I use the pocl icd which is a pure CPU implementation of OpenCL in the Debian buildd grid.

I need to understand why I have no devices declared :?

picca avatar Sep 28 '17 12:09 picca

Am 28.09.2017 um 14:59 schrieb picca [email protected]:

ok, checked that, this error is related to parameterised tests with an empty list of OpenCL contexts (no GPU is installed).

Could not reproduce this kind of failure, (at least) after updating cycles of nose-parametrized and parameterized the tests in test_gpyfft are not executed if I hand in an empty context list.

ok

You prefer silently passing tests without GPU? gpyfft is not at all useful without GPU...

I think that it would be better to mark these test Skipped. If I remember correctly it is possible to have a decorator which should be added to unittests for this purpose. This would be needed to be added to essentially every test, not sure about this. Don’t see the value of testing gpyfft without a GPU, you would hardly catch any error.

I use the pocl icd which is a pure CPU implementation of OpenCL in the Debian buildd grid.

I need to understand why I have no devices declared :?

in test/util.py/get_contexts() only GPU devices are selected. I observed many failures of clFFT with various OpenCL CPU implementations (worksize too small, …), and it is not all optimised for running on a CPU, therefor I disabled testing on CPU.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/geggo/gpyfft/issues/36#issuecomment-332828575, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7Gsw8wRH4zOpnP83WnyknfYycxlJ5Lks5sm5hAgaJpZM4Pm-mm.

geggo avatar Sep 28 '17 13:09 geggo

This would be needed to be added to essentially every test, not sure about this. Don’t see the value of testing gpyfft without a GPU, you would hardly catch any error.

Yes you are right :)

in test/util.py/get_contexts() only GPU devices are selected. I observed many failures of clFFT with various OpenCL CPU implementations (worksize too small, …), and it is not all optimised for running on a CPU, therefor I disabled testing on CPU.

Maybe in that case it should be possible to have an env variable in order to activate also the CPU devices.

This should help in my case. This way we should also report CPU implementations bugs.

(I like the Debian mantra, do not hide the problems ;)

picca avatar Sep 28 '17 13:09 picca

Am 28.09.2017 um 15:17 schrieb picca [email protected]:

This would be needed to be added to essentially every test, not sure about this. Don’t see the value of testing gpyfft without a GPU, you would hardly catch any error.

Yes you are right :)

in test/util.py/get_contexts() only GPU devices are selected. I observed many failures of clFFT with various OpenCL CPU implementations (worksize too small, …), and it is not all optimised for running on a CPU, therefor I disabled testing on CPU.

Maybe in that case it should be possible to have an env variable in order to activate also the CPU devices.

PR welcome ;-)

This should help in my case. This way we should also report CPU implementations bugs.

So, does it work for you on the CPU?

(I like the Debian mantra, do not hide the problems ;) — You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/geggo/gpyfft/issues/36#issuecomment-332833149, or mute the thread https://github.com/notifications/unsubscribe-auth/AA7Gs9oSOjui5RVBjj6FYOaMDYlhr-8wks5sm5xygaJpZM4Pm-mm.

geggo avatar Sep 28 '17 13:09 geggo