This forum has been archived. All content is frozen. Please use KDE Discuss instead.

more questions on BTL tests

Tags: None
(comma "," separated)
User avatar
victor
Registered Member
Posts
5
Karma
0
OS

more questions on BTL tests

Wed Mar 04, 2009 12:32 am
Hi all.
I am continuing to play with BTL benchmarks and I've got a few problems.

1. When I am trying to build some tests (e.g. Goto or MKL) I get the following error message:

[font=Courier]In file included from /home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/main.cpp:22:
/home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/C_BLAS_interface.hh:135: error: ‘blasint’ does not name a type
/home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/C_BLAS_interface.hh: In static member function ‘static void C_BLAS_interface::matrix_vector_product(float*&, float*&, float*&, int)’:
/home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/C_BLAS_interface.hh:150: error: ‘intone’ was not declared in this scope
...[/font]

So, as far as I understand blasint is not declared in any of the included headers - I have both "cblas.h" and "blas.h" on my system. If I change blasint to just int it seems to work fine so far, but I suppose that might be a wrong way in general. I can live with it for now, but just in case you had any suggestions I'd appreciate it.

2. CMake detects BLAS_f77blas_library as /usr/lib64/libf77blas.so which is the BLAS that comes with ATLAS, which is a tuned library rather than the reference F77 BLAS. If I correctly understand the purpose of F77 BLAS tests, of course.

3. On my machine, to complile btl_atlas, I had to add /usr/lib64/libcblas.so;/usr/lib64/liblapack.so to ATLAS_LIB variable. Otherwise I was getting undefined symbols errors during link.

4. btl_mtl4 test doesn't build with the latest revision of MTL4. The list of errors is quite long, but it basically starts with
/home/victor/work/soft/mtl4/boost/numeric/mtl/operation/cholesky.hpp:142: error: ‘mtl::matrix::traits::range_generator’ has not been declared

and the rest is just a consequence of this one.

5. How does one configure btl_mkl test? Can I use MKL with gcc? I couldn't figure out a way to compile this test with gcc. I get an error message saying "-lguide" not found even though I explicitly specify its location in MKL_LIBRARIES variable.

6. What's the significance of LAPACK_acml_LIBRARY variable? Is it used in any tests? My original goal was to compare performance of MKL and ACML and now I don't seem to be able to use either of them...

Thanks in advance for any help.
Victor.

Last edited by victor on Sat Mar 14, 2009 3:57 am, edited 1 time in total.
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS

RE: more questions on BTL tests

Wed Mar 04, 2009 7:32 am
victor wrote:Hi all.
I am continuing to play with BTL benchmarks and I've got a few problems.

1. When I am trying to build some tests (e.g. Goto or MKL) I get the following error message:

[font=Courier]In file included from /home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/main.cpp:22:
/home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/C_BLAS_interface.hh:135: error: ‘blasint’ does not name a type
/home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/C_BLAS_interface.hh: In static member function ‘static void C_BLAS_interface::matrix_vector_product(float*&, float*&, float*&, int)’:
/home/victor/work/soft/eigen/eigen2/bench/btl/libs/C_BLAS/C_BLAS_interface.hh:150: error: ‘intone’ was not declared in this scope
...[/font]

So, as far as I understand blasint is not declared in any of the included headers - I have both "cblas.h" and "blas.h" on my system. If I change blasint to just int it seems to work fine so far, but I suppose that might be a wrong way in general. I can live with it for now, but just in case you had any suggestions I'd appreciate it.


should be fixed (forgot to commit the fix I made a while ago)

2. CMake detects BLAS_f77blas_library as /usr/lib64/libf77blas.so which is the BLAS that comes with ATLAS, which is a tuned library rather than the reference F77 BLAS. If I correctly understand the purpose of F77 BLAS tests, of course.


currently there is no such "F77 BLAS" tests, only handwritten F77 (which is useless), and three BLAS (MKL, ATLAS, GOTO)

3. On my machine, to complile btl_atlas, I had to add /usr/lib64/libcblas.so;/usr/lib64/liblapack.so to ATLAS_LIB variable. Otherwise I was getting undefined symbols errors during link.


should be fixed too, though properly linking to ATLAS seems to be painful and highly depends on the distrib....

4. btl_mtl4 test doesn't build with the latest revision of MTL4. The list of errors is quite long, but it's basically starts with
/home/victor/work/soft/mtl4/boost/numeric/mtl/operation/cholesky.hpp:142: error: ‘mtl::matrix::traits::range_generator’ has not been declared


ok, I did not try MTL4 since a couple of months, actually its development seemed to be dead...

and the rest is just a consequence of this one.

5. How does one configure btl_mkl test? Can I use MKL with gcc? I couldn't figure out a way to compile this test with gcc. I get an error message saying "-lguide" not found even though I explicitly specify its location in MKL_LIBRARIES variable.

6. What's the significance of LAPACK_acml_LIBRARY variable? Is it used in any tests? My original goal was to compare performance of MKL and ACML and now I don't seem to be able to use either of them...


yep, I hate those BLAS/LAPACK librairies because it is always a mess to link to them. However, MKL should really work. To help it finding the libs, you can set the env var MKLLIB to your mkl lib folder (e.g., /opt/intel/mkl/*/lib/32)


about LAPACK_acml_LIBRARY, the thing is that we have two kinds of cmake files to find BLAS/LAPACK: a generic one used by the unit tests, and specific ones used by BTL... perhaps in BTL we should also rely on the generic ones which seems to be more powerful, however I don't really have the time to do such things. To add ACML as a benched library, you have to edit btl/libs/C_BLAS/CMakeLists.txt and add a test if BLAS_acml_LIBRARY/LAPACK_acml_LIBRARY are not false... You might also have to edit the file btl/data/perlib_plot_settings.txt to add ACML with the color you want for this one.

In case you manage to add ACML, please send a patch :)
User avatar
victor
Registered Member
Posts
5
Karma
0
OS

RE: more questions on BTL tests

Thu Mar 05, 2009 7:38 am
ggael wrote:should be fixed too, though properly linking to ATLAS seems to be painful and highly depends on the distrib....

That's true. Another thing is that it seems kind of pointless to distribute the same ATLAS library for an entire given linux distribution considering the fact that it's supposed to be tuned to the specific CPU.

ggael wrote:ok, I did not try MTL4 since a couple of months, actually its development seemed to be dead...

It did seem so for a while, but it went up to alpha 2 version some time recently - within the last few months that I hadn't been checking. Not that it's important now that Eigen clearly outperforms it.

ggael wrote:In case you manage to add ACML, please send a patch :)


Following your instructions, I added ACML support to BTL. Please find a patch in the mailing lists.

Just a few more comments/questions.
1. Changing test time out time in cmake doesn't change it in DartConfiguration.tcl so I have to change it manually. I didn't look into why it is so, but you might want to check it.
2. There was some inconsistency between -DHAS_LAPACK=1 and -DPUREBLAS flags in C_BLAS which I've (hopefully=works for me) fixed (patch submitted).
3. There seem to be some missing "actions" in BTL. I have to occasionally comment/uncomment some headers in various places to get it working. I can't tell for sure what exactly is wrong, because it seems to have changed over the last couple of days. One I am more or less certain about is "action_ssyr2" - I don't have such a header, but it's referenced in a few places.
4. Is there a way to compile just the BTL tests? I've unchecked the BUILD_TESTING option in cmake, but all tests are still being built...

Cheers,
Victor.
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS

RE: more questions on BTL tests

Thu Mar 05, 2009 8:13 am
victor wrote:
ggael wrote:should be fixed too, though properly linking to ATLAS seems to be painful and highly depends on the distrib....

That's true. Another thing is that it seems kind of pointless to distribute the same ATLAS library for an entire given linux distribution considering the fact that it's supposed to be tuned to the specific CPU.

ggael wrote:ok, I did not try MTL4 since a couple of months, actually its development seemed to be dead...

It did seem so for a while, but it went up to alpha 2 version some time recently - within the last few months that I hadn't been checking. Not that it's important now that Eigen clearly outperforms it.

ggael wrote:In case you manage to add ACML, please send a patch :)


Following your instructions, I added ACML support to BTL. Please find a patch in the mailing lists.

Just a few more comments/questions.
1. Changing test time out time in cmake doesn't change it in DartConfiguration.tcl so I have to change it manually. I didn't look into why it is so, but you might want to check it.


I'm clueless.

2. There was some inconsistency between -DHAS_LAPACK=1 and -DPUREBLAS flags in C_BLAS which I've (hopefully=works for me) fixed (patch submitted).


patch applied, thanks.

3. There seem to be some missing "actions" in BTL. I have to occasionally comment/uncomment some headers in various places to get it working. I can't tell for sure what exactly is wrong, because it seems to have changed over the last couple of days. One I am more or less certain about is "action_ssyr2" - I don't have such a header, but it's referenced in a few places.


fixed too.

4. Is there a way to compile just the BTL tests? I've unchecked the BUILD_TESTING option in cmake, but all tests are still being built...


the option to turn off is EIGEN_BUILD_TESTS=off. Note that if you run make in the btl folder, then only btl is built.

thanks again for your patches.
User avatar
victor
Registered Member
Posts
5
Karma
0
OS

RE: more questions on BTL tests

Tue Mar 17, 2009 7:35 am
I've posted some benchmark results on the wiki.
http://eigen.tuxfamily.org/index.php?ti ... el_compare

Also, BTL with Eigen2 compiled with different compilers:
http://eigen.tuxfamily.org/index.php?ti ... mark_Intel

I couldn't compile it with gcc 3.3.3 so I don't know if it should remain in the list of supported compilers.

Cheers


Bookmarks



Who is online

Registered users: Bing [Bot], Evergrowing, Google [Bot], rblackwell