Closed pythonometrist closed 3 years ago
Hi, thanks for trying this out. Glad to know it at least compiles on Windows - I haven't tried it and it is surprising that it (even just partially) works. :-)
1) after setiing benchmark for numpy=1, the tests run, but seem to show numpy aas faster (higher gflops and lower time) than ceygen.
Hmm, what exact compiler version do you use, what Eigen version, what compiler optimizations? What are the exact benchmarks where you see suboptimal performance? For what problem sizes? For larger matrices and some operations, NumPy can be comparable and even slightly faster - depending whether it has been linked against an optimized BLAS version. What machine (processor type, number of cores and frequency) is it?
2) there are errors in a few tests..
I see. Fortunately this just fails on a very strict and artificial assert that I've put just for testing and shouldn't hurt normal use. If you type python -v install
, Cython will happily install itself without testing. But still I'd like to debug it:
File "test_core.pyx", line 205, in ceygen.tests.test_core.TestCore.test_dot_mm (ceygen/tests\test_core.cpp:8683) File "core.pyx", line 108, in ceygen.core.dot_mm (ceygen\core.cpp:4620) ValueError: is_malloc_allowed() && "heap allocation is forbidden (EIGENRUNTIME NO_MALLOC is defined and g_is_malloc_allowed is false)" does not hold in C:/Ceyg en-0.2/Eigen/Eigen/src/Core/util/Memory.h:189
^^^ can you please paste what ceygen\core.cpp:4620 line is along with some context (i.e. 5 lines around)?
ceygen\llt.cpp: In function 'PyObject* get_memview_MemoryView_5array_7memview_get(__pyx_array_obj*)': ceygen\llt.cpp:3415:15: warning: dereferencing type-punned pointer will break strict-aliasing rules
This warning should go away with recent Cython, please try 0.19.
ceygen\llt.cpp:14130:78: warning: unknown conversion type character 'z' in format
This seems to be a Cython bug happening only on Windows systems.
C:\Python27\Scripts\g++.exe -DMS_WIN64 -shared -s build\temp.win-amd64-2.7\Release\ceygen\llt.o build\temp.win-amd64-2.7\Release\ceygen\llt.def -LC:\Anaconda\libs -LC:\Anaconda\PCbuild\amd64 -lpython27 -lmsvcr90 -o build\lib.win-amd64-2.7\ceygen\llt.pyd -fopenmp g++.exe: libgomp.spec: No such file or directory
This is caused by having -fopenmp in your ldflags (which is the default - set it to empty in setup.cfg). Your compiler environment doesn't seem to support OpenMP for parallelization - if it did, dot_mm could use all your cores and be much faster for large matrices.
Thanks for your responding! I am eager to try it out as memory views enables me to spped through the arrays in a gibbs sampling exercise. but then I get stuck - going back to numpy arrays is not an option.
1) Windows 7 home premium, with TDM GCC cor c compilations.12 core overclocked to 4.5 GHz, 48 Gb ram. 2) I have eigen3 downloaded - i ahvent installed anything and this might be a part of the problem - pip install of ceygen cant find eigen/core. Is there a way I can point to it? 3)cython 0.19 installed - still shows ceygen\llt.cpp:14130:78: warning: unknown conversion type character 'z' in format 4) ldflags = turned off the surch for openmp.
I manually included eigen directory into the ceygen folder and then it seemed to work (sort of..) what si the right way for me to point ceygen to eigen3?
1) Windows 7 home premium, with TDM GCC cor c compilations.12 core overclocked to 4.5 GHz, 48 Gb ram.
Oh, nice machine. But you forgot to mention exact compiler version, CPU type (core i7? Sandy Brigde? Ivy Bridge?) and optimizations you used (--cflags cmdline option or cflags entry under [build_ext] in your setup.cfg). These are needed to debug any possible suboptimal performance. Also you haven't stated which exact benchmarks for what problem sizes you find suboptimal. Also please tell exact Eigen version you use.
2) I have eigen3 downloaded - i ahvent installed anything and this might be a part of the problem - pip install of ceygen cant find eigen/core. Is there a way I can point to it?
Hmm, this is expected on windows, because there is no standard folder to install (well, just copy the folder, no need to install it) Eigen. See below.
3)cython 0.19 installed - still shows ceygen\llt.cpp:14130:78: warning: unknown conversion type character 'z' in format
Hmm, minor Cython bug, should be of no importance to you.
4) ldflags = turned off the surch for openmp.
So does it mean you are now able to build git master version of Ceygen?
I manually included eigen directory into the ceygen folder and then it seemed to work (sort of..) what si the right way for me to point ceygen to eigen3?
To specify --include-dirs=path/to/folder/that/contains/Eigen/folder or equivalent include_dirs option in the setup.cfg, exactly as mentioned in the README.
1) i7 intel 3930k - Ivy bridge 2) cflags = -O3 -march=core2 3) eigen 3.06
Will update you later today with more details. For now a sample of benchmarks are below. output from the test results - size: 64_64, iterations: 61035 numpy: 2.24e-06s per call, 0.137s total, 1.82 GFLOPS ceygen: 5.11e-06s per call, 0.312s total, 0.80 GFLOPS size: 96_96, iterations: 27126 numpy: 5.49e-06s per call, 0.149s total, 1.68 GFLOPS ceygen: 1.25e-05s per call, 0.340s total, 0.74 GFLOPS size: 128_128, iterations: 15258 numpy: 8.52e-06s per call, 0.130s total, 1.92 GFLOPS ceygen: 1.99e-05s per call, 0.304s total, 0.82 GFLOPS size: 192_192, iterations: 6781 numpy: 2.11e-05s per call, 0.143s total, 1.75 GFLOPS ceygen: 4.42e-05s per call, 0.300s total, 0.83 GFLOPS size: 256*256, iterations: 3814
1) i7 intel 3930k - Ivy bridge 2) cflags = -O3 -march=core2
core2 unnecessarily limits intruction set of your processor, you should use core-avx-i, corei7-avx or best -march=native if you compile on the same machine you run the code.
3) eigen 3.06
Latest release is 3.1.3, you may try this one to see if it affects performance
Will update you later today with more details. For now a sample of benchmarks are below. output from the test results - size: 64_64, iterations: 61035 numpy: 2.24e-06s per call, 0.137s total, 1.82 GFLOPS ceygen: 5.11e-06s per call, 0.312s total, 0.80 GFLOPS size: 96_96, iterations: 27126 numpy: 5.49e-06s per call, 0.149s total, 1.68 GFLOPS ceygen: 1.25e-05s per call, 0.340s total, 0.74 GFLOPS size: 128_128, iterations: 15258 numpy: 8.52e-06s per call, 0.130s total, 1.92 GFLOPS ceygen: 1.99e-05s per call, 0.304s total, 0.82 GFLOPS size: 192_192, iterations: 6781 numpy: 2.11e-05s per call, 0.143s total, 1.75 GFLOPS ceygen: 4.42e-05s per call, 0.300s total, 0.83 GFLOPS
I guess this is test_bench_multiply_mm. My results (Intel Sandy Bridge i5-2520M @ 2.5 GHz with 3.2 GHz turbo): size: 64_64, iterations: 61035 numpy: 4.33e-06s per call, 0.264s total, 0.95 GFLOPS ceygen: 4.04e-06s per call, 0.247s total, 1.01 GFLOPS size: 96_96, iterations: 27126 numpy: 9.26e-06s per call, 0.251s total, 0.99 GFLOPS ceygen: 1.30e-05s per call, 0.352s total, 0.71 GFLOPS size: 128_128, iterations: 15258 numpy: 1.61e-05s per call, 0.246s total, 1.02 GFLOPS ceygen: 2.36e-05s per call, 0.361s total, 0.69 GFLOPS size: 192_192, iterations: 6781 numpy: 3.13e-05s per call, 0.212s total, 1.18 GFLOPS ceygen: 3.40e-05s per call, 0.230s total, 1.08 GFLOPS size: 256_256, iterations: 3814 numpy: 5.37e-05s per call, 0.205s total, 1.22 GFLOPS ceygen: 5.98e-05s per call, 0.228s total, 1.10 GFLOPS size: 384_384, iterations: 1695 numpy: 1.35e-04s per call, 0.228s total, 1.10 GFLOPS ceygen: 1.60e-04s per call, 0.272s total, 0.92 GFLOPS size: 512_512, iterations: 953 numpy: 3.78e-04s per call, 0.360s total, 0.69 GFLOPS ceygen: 3.65e-04s per call, 0.348s total, 0.72 GFLOPS size: 768_768, iterations: 423 numpy: 9.45e-04s per call, 0.400s total, 0.62 GFLOPS ceygen: 8.97e-04s per call, 0.379s total, 0.66 GFLOPS size: 1024*1024, iterations: 238 numpy: 1.57e-03s per call, 0.374s total, 0.67 GFLOPS ceygen: 1.57e-03s per call, 0.374s total, 0.67 GFLOPS
So yes, there seem to be performance drop of Ceygen compared to NumPy. As multiply_mm is a O(N) operation (N is total number of matrix elements), it will be probably memory-bound. Perhaps Eigen's access pattern is less memory-friendly than NumPy's? It may have something to do with Eigen being column-wise by default, OTOH I override it. I'll try to debug it if I find some time.
Closing, not developed anymore.
Hi I installed ceygen 0.2 and saved the eigen folder within it.
I am using TDM GCC on windows 7. I ahve eigen downloaded and have cereated a setup.cfg to point to it.
I have two issues:
1) after setiing benchmark for numpy=1, the tests run, but seem to show numpy aas faster (higher gflops and lower time) than ceygen.
2) there are errors in a few tests..
I like the idea of ceygen and it might prove to be effective if I can ge this working!
thanks!
Edit: I also donwloaded this master branch and I got another set of errors.
REsults from Ceygen 0.2--------------------------------------------------------------------------------------------------------------------------------- size: 1024, iterations: 488281 ceygen: 7.99e-07s per call, 0.390s total, 2.56 GFLOPS ok test_bench_iinv (ceygen.tests.bench.Bench) ... size: 2_2, iterations: 1000000 ceygen: 1.24e-06s per call, 1.238s total, 0.01 GFLOPS size: 3_3, iterations: 1000000 ceygen: 1.39e-06s per call, 1.395s total, 0.02 GFLOPS size: 4_4, iterations: 1000000 ceygen: 1.53e-06s per call, 1.526s total, 0.04 GFLOPS size: 6_6, iterations: 1000000 ceygen: 2.15e-06s per call, 2.153s total, 0.10 GFLOPS size: 8_8, iterations: 488281 ceygen: 2.62e-06s per call, 1.280s total, 0.20 GFLOPS size: 12_12, iterations: 144675 ceygen: 3.98e-06s per call, 0.576s total, 0.43 GFLOPS size: 16_16, iterations: 61035 ceygen: 6.08e-06s per call, 0.371s total, 0.67 GFLOPS size: 24_24, iterations: 18084 ceygen: 1.38e-05s per call, 0.249s total, 1.00 GFLOPS size: 32_32, iterations: 7629 ceygen: 2.40e-05s per call, 0.183s total, 1.37 GFLOPS size: 48_48, iterations: 2260 ceygen: 5.62e-05s per call, 0.127s total, 1.97 GFLOPS size: 64_64, iterations: 953 ceygen: 1.40e-04s per call, 0.133s total, 1.88 GFLOPS size: 96_96, iterations: 282 ceygen: 3.58e-04s per call, 0.101s total, 2.47 GFLOPS size: 128_128, iterations: 119 ceygen: 6.47e-04s per call, 0.077s total, 3.24 GFLOPS size: 192_192, iterations: 35 ceygen: 1.71e-03s per call, 0.060s total, 4.13 GFLOPS size: 256_256, iterations: 14 ceygen: 3.71e-03s per call, 0.052s total, 4.52 GFLOPS size: 384_384, iterations: 4 ceygen: 1.20e-02s per call, 0.048s total, 4.72 GFLOPS size: 512_512, iterations: 1 ceygen: 2.80e-02s per call, 0.028s total, 4.79 GFLOPS size: 768_768, iterations: 1 ceygen: 8.90e-02s per call, 0.089s total, 5.09 GFLOPS size: 1024_1024, iterations: 1 ceygen: 2.12e-01s per call, 0.212s total, 5.06 GFLOPS ok test_bench_inv (ceygen.tests.bench.Bench) ... size: 2_2, iterations: 1000000 ceygen: 1.37e-06s per call, 1.375s total, 0.01 GFLOPS size: 3_3, iterations: 1000000 ceygen: 1.48e-06s per call, 1.485s total, 0.02 GFLOPS size: 4_4, iterations: 1000000 ceygen: 1.61e-06s per call, 1.608s total, 0.04 GFLOPS size: 6_6, iterations: 1000000 ceygen: 2.23e-06s per call, 2.231s total, 0.10 GFLOPS size: 8_8, iterations: 488281 ceygen: 2.62e-06s per call, 1.279s total, 0.20 GFLOPS size: 12_12, iterations: 144675 ceygen: 4.06e-06s per call, 0.587s total, 0.43 GFLOPS size: 16_16, iterations: 61035 ceygen: 6.14e-06s per call, 0.375s total, 0.67 GFLOPS size: 24_24, iterations: 18084 ceygen: 1.42e-05s per call, 0.257s total, 0.97 GFLOPS size: 32_32, iterations: 7629 ceygen: 2.40e-05s per call, 0.183s total, 1.37 GFLOPS size: 48_48, iterations: 2260 ceygen: 5.62e-05s per call, 0.127s total, 1.97 GFLOPS size: 64_64, iterations: 953 ceygen: 1.40e-04s per call, 0.133s total, 1.88 GFLOPS size: 96_96, iterations: 282 ceygen: 3.55e-04s per call, 0.100s total, 2.49 GFLOPS size: 128_128, iterations: 119 ceygen: 5.71e-04s per call, 0.068s total, 3.67 GFLOPS size: 192_192, iterations: 35 ceygen: 1.74e-03s per call, 0.061s total, 4.06 GFLOPS size: 256_256, iterations: 14 ceygen: 4.07e-03s per call, 0.057s total, 4.12 GFLOPS size: 384_384, iterations: 4 ceygen: 1.20e-02s per call, 0.048s total, 4.72 GFLOPS size: 512_512, iterations: 1 ceygen: 2.80e-02s per call, 0.028s total, 4.79 GFLOPS size: 768_768, iterations: 1 ceygen: 9.10e-02s per call, 0.091s total, 4.98 GFLOPS size: 1024_1024, iterations: 1 ceygen: 2.11e-01s per call, 0.211s total, 5.09 GFLOPS ok test_bench_multiply_mm (ceygen.tests.bench.Bench) ... size: 2_2, iterations: 1000000 numpy: 4.53e-07s per call, 0.453s total, 0.01 GFLOPS ceygen: 2.17e-07s per call, 0.217s total, 0.02 GFLOPS size: 3_3, iterations: 1000000 numpy: 4.57e-07s per call, 0.457s total, 0.02 GFLOPS ceygen: 2.33e-07s per call, 0.233s total, 0.04 GFLOPS size: 4_4, iterations: 1000000 numpy: 4.58e-07s per call, 0.458s total, 0.03 GFLOPS ceygen: 2.36e-07s per call, 0.236s total, 0.07 GFLOPS size: 6_6, iterations: 1000000 numpy: 4.67e-07s per call, 0.467s total, 0.08 GFLOPS ceygen: 2.61e-07s per call, 0.261s total, 0.14 GFLOPS size: 8_8, iterations: 1000000 numpy: 4.82e-07s per call, 0.482s total, 0.13 GFLOPS ceygen: 2.94e-07s per call, 0.294s total, 0.22 GFLOPS size: 12_12, iterations: 1000000 numpy: 5.28e-07s per call, 0.528s total, 0.27 GFLOPS ceygen: 3.86e-07s per call, 0.386s total, 0.37 GFLOPS size: 16_16, iterations: 976562 numpy: 5.63e-07s per call, 0.550s total, 0.45 GFLOPS ceygen: 5.46e-07s per call, 0.533s total, 0.47 GFLOPS size: 24_24, iterations: 434027 numpy: 6.98e-07s per call, 0.303s total, 0.83 GFLOPS ceygen: 9.19e-07s per call, 0.399s total, 0.63 GFLOPS size: 32_32, iterations: 244140 numpy: 8.89e-07s per call, 0.217s total, 1.15 GFLOPS ceygen: 1.47e-06s per call, 0.358s total, 0.70 GFLOPS size: 48_48, iterations: 108506 numpy: 1.49e-06s per call, 0.162s total, 1.54 GFLOPS ceygen: 3.01e-06s per call, 0.327s total, 0.76 GFLOPS size: 64_64, iterations: 61035 numpy: 2.24e-06s per call, 0.137s total, 1.82 GFLOPS ceygen: 5.11e-06s per call, 0.312s total, 0.80 GFLOPS size: 96_96, iterations: 27126 numpy: 5.49e-06s per call, 0.149s total, 1.68 GFLOPS ceygen: 1.25e-05s per call, 0.340s total, 0.74 GFLOPS size: 128_128, iterations: 15258 numpy: 8.52e-06s per call, 0.130s total, 1.92 GFLOPS ceygen: 1.99e-05s per call, 0.304s total, 0.82 GFLOPS size: 192_192, iterations: 6781 numpy: 2.11e-05s per call, 0.143s total, 1.75 GFLOPS ceygen: 4.42e-05s per call, 0.300s total, 0.83 GFLOPS size: 256_256, iterations: 3814 numpy: 3.70e-05s per call, 0.141s total, 1.77 GFLOPS ceygen: 7.81e-05s per call, 0.298s total, 0.84 GFLOPS size: 384_384, iterations: 1695 numpy: 8.50e-05s per call, 0.144s total, 1.74 GFLOPS ceygen: 1.76e-04s per call, 0.298s total, 0.84 GFLOPS size: 512_512, iterations: 953 numpy: 1.51e-04s per call, 0.144s total, 1.73 GFLOPS ceygen: 3.13e-04s per call, 0.298s total, 0.84 GFLOPS size: 768_768, iterations: 423 numpy: 4.54e-04s per call, 0.192s total, 1.30 GFLOPS ceygen: 7.64e-04s per call, 0.323s total, 0.77 GFLOPS size: 1024*1024, iterations: 238 numpy: 1.45e-03s per call, 0.345s total, 0.72 GFLOPS ceygen: 1.73e-03s per call, 0.411s total, 0.61 GFLOPS ok test_bench_multiply_vs (ceygen.tests.bench.Bench) ... size: 2, iterations: 1000000 ceygen: 1.73e-07s per call, 0.173s total, 0.01 GFLOPS size: 3, iterations: 1000000 ceygen: 1.69e-07s per call, 0.169s total, 0.02 GFLOPS size: 4, iterations: 1000000 ceygen: 1.70e-07s per call, 0.170s total, 0.02 GFLOPS size: 6, iterations: 1000000 ceygen: 1.73e-07s per call, 0.173s total, 0.03 GFLOPS size: 8, iterations: 1000000 ceygen: 1.80e-07s per call, 0.180s total, 0.04 GFLOPS size: 12, iterations: 1000000 ceygen: 1.81e-07s per call, 0.181s total, 0.07 GFLOPS size: 16, iterations: 1000000 ceygen: 1.78e-07s per call, 0.178s total, 0.09 GFLOPS size: 24, iterations: 1000000 ceygen: 1.86e-07s per call, 0.186s total, 0.13 GFLOPS size: 32, iterations: 1000000 ceygen: 1.88e-07s per call, 0.188s total, 0.17 GFLOPS size: 48, iterations: 1000000 ceygen: 2.10e-07s per call, 0.210s total, 0.23 GFLOPS size: 64, iterations: 1000000 ceygen: 2.00e-07s per call, 0.200s total, 0.32 GFLOPS size: 96, iterations: 1000000 ceygen: 2.14e-07s per call, 0.214s total, 0.45 GFLOPS size: 128, iterations: 1000000 ceygen: 2.39e-07s per call, 0.239s total, 0.54 GFLOPS size: 192, iterations: 1000000 ceygen: 2.90e-07s per call, 0.290s total, 0.66 GFLOPS size: 256, iterations: 976562 ceygen: 2.87e-07s per call, 0.280s total, 0.89 GFLOPS size: 384, iterations: 651041 ceygen: 3.70e-07s per call, 0.241s total, 1.04 GFLOPS size: 512, iterations: 488281 ceygen: 4.30e-07s per call, 0.210s total, 1.19 GFLOPS size: 768, iterations: 325520 ceygen: 5.53e-07s per call, 0.180s total, 1.39 GFLOPS size: 1024, iterations: 244140 ceygen: 6.68e-07s per call, 0.163s total, 1.53 GFLOPS ok test_dot_mm (ceygen.tests.test_core.TestCore) ... ERROR test_dot_mm_baddims (ceygen.tests.test_core.TestCore) ... ok test_dot_mm_none (ceygen.tests.test_core.TestCore) ... ok test_dot_mm_strides (ceygen.tests.test_core.TestCore) ... ERROR test_dot_mv (ceygen.tests.test_core.TestCore) ... ok test_dot_mv_baddims (ceygen.tests.test_core.TestCore) ... ok test_dot_mv_none (ceygen.tests.test_core.TestCore) ... ok test_dot_mv_strides (ceygen.tests.test_core.TestCore) ... ok test_dot_mv_transposed (ceygen.tests.test_core.TestCore) ... ok test_dot_vm (ceygen.tests.test_core.TestCore) ... ok test_dot_vm_baddims (ceygen.tests.test_core.TestCore) ... ok test_dot_vm_none (ceygen.tests.test_core.TestCore) ... ok test_dot_vm_transposed (ceygen.tests.test_core.TestCore) ... ok test_dot_vv (ceygen.tests.test_core.TestCore) ... ok test_dot_vv_baddims (ceygen.tests.test_core.TestCore) ... ok test_dot_vv_none (ceygen.tests.test_core.TestCore) ... ok test_dot_vv_strides (ceygen.tests.test_core.TestCore) ... ok test_from_readme (ceygen.tests.test_core.TestCore) ... ERROR test_mmm (ceygen.tests.test_dispatch.TestDispatch) ... ok test_mms (ceygen.tests.test_dispatch.TestDispatch) ... ok test_ms (ceygen.tests.test_dispatch.TestDispatch) ... ok test_mv (ceygen.tests.test_dispatch.TestDispatch) ... ok test_mvv (ceygen.tests.test_dispatch.TestDispatch) ... ok test_vs (ceygen.tests.test_dispatch.TestDispatch) ... ok test_vvs (ceygen.tests.test_dispatch.TestDispatch) ... ok test_vvv (ceygen.tests.test_dispatch.TestDispatch) ... ok test_add_mm (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_mm_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_mm_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_ms (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_ms_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_ms_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_vs (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_vs_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_vs_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_vv (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_vv_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_add_vv_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_divide_mm (ceygen.tests.test_elemwise.TestElemwise) ... ok test_divide_mm_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_divide_mm_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_divide_vv (ceygen.tests.test_elemwise.TestElemwise) ... ok test_divide_vv_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_divide_vv_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_mm (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_mm_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_mm_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_ms (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_ms_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_ms_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_vs (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_vs_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_vs_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_vv (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_vv_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_multiply_vv_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_subtract_mm (ceygen.tests.test_elemwise.TestElemwise) ... ok test_subtract_mm_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_subtract_mm_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_subtract_vv (ceygen.tests.test_elemwise.TestElemwise) ... ok test_subtract_vv_baddims (ceygen.tests.test_elemwise.TestElemwise) ... ok test_subtract_vv_none (ceygen.tests.test_elemwise.TestElemwise) ... ok test_det (ceygen.tests.test_lu.TestLu) ... ok test_det_badinput (ceygen.tests.test_lu.TestLu) ... skipped 'until fix from http ://eigen.tuxfamily.org/bz/show_bug.cgi?id=548 is released in Eigen' test_iinv (ceygen.tests.test_lu.TestLu) ... ok test_iinv_badinput (ceygen.tests.test_lu.TestLu) ... ok test_inv (ceygen.tests.test_lu.TestLu) ... ok test_inv_badinput (ceygen.tests.test_lu.TestLu) ... ok test_colwise_sum (ceygen.tests.test_reductions.TestReductions) ... ok test_colwise_sum_badargs (ceygen.tests.test_reductions.TestReductions) ... ok test_rowwise_sum (ceygen.tests.test_reductions.TestReductions) ... ok test_rowwise_sum_badargs (ceygen.tests.test_reductions.TestReductions) ... ok test_sum_m (ceygen.tests.test_reductions.TestReductions) ... ok test_sum_m_badargs (ceygen.tests.test_reductions.TestReductions) ... ok test_sum_v (ceygen.tests.test_reductions.TestReductions) ... ok test_sum_v_badargs (ceygen.tests.test_reductions.TestReductions) ... ok
ERROR: test_dot_mm (ceygen.tests.test_core.TestCore)
Traceback (most recent call last): File "test_core.pyx", line 205, in ceygen.tests.test_core.TestCore.test_dot_mm (ceygen/tests\test_core.cpp:8683) File "core.pyx", line 108, in ceygen.core.dot_mm (ceygen\core.cpp:4620) ValueError: is_malloc_allowed() && "heap allocation is forbidden (EIGENRUNTIME NO_MALLOC is defined and g_is_malloc_allowed is false)" does not hold in C:/Ceyg en-0.2/Eigen/Eigen/src/Core/util/Memory.h:189
ERROR: test_dot_mm_strides (ceygen.tests.test_core.TestCore)
Traceback (most recent call last): File "test_core.pyx", line 240, in ceygen.tests.test_core.TestCore.test_dot_mm _strides (ceygen/tests\test_core.cpp:9745) File "core.pyx", line 108, in ceygen.core.dot_mm (ceygen\core.cpp:4620) ValueError: is_malloc_allowed() && "heap allocation is forbidden (EIGENRUNTIME NO_MALLOC is defined and g_is_malloc_allowed is false)" does not hold in C:/Ceyg en-0.2/Eigen/Eigen/src/Core/util/Memory.h:189
ERROR: test_from_readme (ceygen.tests.test_core.TestCore)
Traceback (most recent call last): File "test_core.pyx", line 17, in ceygen.tests.test_core.TestCore.test_from_re adme (ceygen/tests\test_core.cpp:1923) File "core.pyx", line 108, in ceygen.core.dot_mm (ceygen\core.cpp:4620) ValueError: is_malloc_allowed() && "heap allocation is forbidden (EIGENRUNTIME NO_MALLOC is defined and g_is_malloc_allowed is false)" does not hold in C:/Ceyg en-0.2/Eigen/Eigen/src/Core/util/Memory.h:189
Ran 87 tests in 88.089s
FAILED (errors=3, skipped=1) error: There were test failures
C:\Ceygen-0.2>python setup.py -v test install
---------------------------------------------------------------------------------Master Branch ------------------------------------------------------
C:\Ceygen-0.2>python setup.py -v test install running test running build running build_py not copying ceygeninit.py (output up-to-date) not copying ceygen\tests\support.py (output up-to-date) not copying ceygen\testsinit.py (output up-to-date) not copying ceygen\testsmain.py (output up-to-date) not copying ceygen\core.pxd (output up-to-date) not copying ceygen\dtype.pxd (output up-to-date) not copying ceygen\elemwise.pxd (output up-to-date) not copying ceygen\llt.pxd (output up-to-date) not copying ceygen\lu.pxd (output up-to-date) not copying ceygen\reductions.pxd (output up-to-date) running build_ext skipping 'ceygen.core' extension (up-to-date) skipping 'ceygen.dtype' extension (up-to-date) skipping 'ceygen.elemwise' extension (up-to-date) building 'ceygen.llt' extension C:\Python27\Scripts\gcc.exe -DMS_WIN64 -mdll -O3 -Wall -IC:\Ceygen-0.2\ceygen -I C:/Ceygen-0.2/Eigen -IC:\Anaconda\include -IC:\Anaconda\PC -c ceygen\llt.cpp -o build\temp.win-amd64-2.7\Release\ceygen\llt.o -O3 -march=core2 ceygen\llt.cpp: In function 'PyObject* get_memview_MemoryView_5array_7memview_ get(pyx_arrayobj)': ceygen\llt.cpp:3415:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:3415:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'pyx_arrayobj pyx_arraynew(PyObject, Py_ssiz et, char, char, char)': ceygen\llt.cpp:3723:17: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:3723:17: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'PyObject* pyx_memoryview_is_slice(pyx_memoryvie wobj, PyObject_)': ceygen\llt.cpp:4885:21: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:4885:21: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'PyObject* pyx_memoryview_MemoryView10memoryview 16is_c_contig(pyx_memoryviewobj)': ceygen\llt.cpp:7030:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7030:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'PyObject_ pyx_memoryview_MemoryView10memoryview 18is_f_contig(pyx_memoryviewobj)': ceygen\llt.cpp:7095:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7095:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'PyObject_ pyx_memoryviewnew(PyObject, int, int, PyxTypeInfo)': ceygen\llt.cpp:7313:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7313:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'PyObject* unellipsify(PyObject, int)': ceygen\llt.cpp:7494:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7494:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7649:20: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7649:20: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7709:22: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:7709:22: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'PyObject_ pyx_memoryview_fromslice(Pyxmemviews lice, int, PyObject* ()(char), int ()(char, PyObject), int)': ceygen\llt.cpp:9733:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp:9733:15: warning: dereferencing type-punned pointer will break st rict-aliasing rules ceygen\llt.cpp: In function 'int Pyx_BufFmt_ProcessTypeChunk(Pyx_BufFmtCont ext)': ceygen\llt.cpp:14130:78: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14130:78: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14130:78: warning: too many arguments for format ceygen\llt.cpp:14182:67: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14182:67: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14182:67: warning: too many arguments for format ceygen\llt.cpp: In function 'PyObject* pyx_buffmt_parse_array(Pyx_BufFmtCon text, const char__)': ceygen\llt.cpp:14242:69: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14242:69: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' ceygen\llt.cpp:14242:69: warning: too many arguments for format ceygen\llt.cpp: In function 'int Pyx_GetBufferAndValidate(Pybuffer, PyObject _, PyxTypeInfo, int, int, int, Pyx_BufFmtStackElem)': ceygen\llt.cpp:14423:73: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14423:73: warning: format '%s' expects type 'char_', but argument 3 has type 'Py_ssize_t' ceygen\llt.cpp:14423:73: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14423:73: warning: too many arguments for format ceygen\llt.cpp: In function 'int Pyx_ValidateAndInitmemviewslice(int, int, i nt, int, PyxTypeInfo, Pyx_BufFmtStackElem, Pyxmemviewslice, PyObject )': ceygen\llt.cpp:14525:50: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14525:50: warning: format '%s' expects type 'char', but argument 3 has type 'Py_ssize_t' ceygen\llt.cpp:14525:50: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14525:50: warning: too many arguments for format ceygen\llt.cpp: In function 'void PyxRaiseArgtupleInvalid(const char, int, P y_ssize_t, Py_ssize_t, Py_ssizet)': ceygen\llt.cpp:14781:59: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14781:59: warning: format '%s' expects type 'char', but argument 5 has type 'Py_ssize_t' ceygen\llt.cpp:14781:59: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:14781:59: warning: too many arguments for format ceygen\llt.cpp: In function 'void __Pyx_RaiseTooManyValuesError(Py_ssize_t)': ceygen\llt.cpp:15209:94: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:15209:94: warning: too many arguments for format ceygen\llt.cpp: In function 'void Pyx_RaiseNeedMoreValuesError(Py_ssize_t)': ceygen\llt.cpp:15215:48: warning: unknown conversion type character 'z' in forma t ceygen\llt.cpp:15215:48: warning: format '%s' expects type 'char*', but argument 3 has type 'Py_ssize_t' ceygen\llt.cpp:15215:48: warning: too many arguments for format writing build\temp.win-amd64-2.7\Release\ceygen\llt.def C:\Python27\Scripts\g++.exe -DMS_WIN64 -shared -s build\temp.win-amd64-2.7\Relea se\ceygen\llt.o build\temp.win-amd64-2.7\Release\ceygen\llt.def -LC:\Anaconda\li bs -LC:\Anaconda\PCbuild\amd64 -lpython27 -lmsvcr90 -o build\lib.win-amd64-2.7\c eygen\llt.pyd -fopenmp g++.exe: libgomp.spec: No such file or directory error: command 'g++' failed with exit status 1
C:\Ceygen-0.2>