Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add linear algebra benchmark that uses flmatrix. #5

Merged
merged 1 commit into from
May 24, 2020

Conversation

soegaard
Copy link
Contributor

No description provided.

@jcoo092
Copy link
Owner

jcoo092 commented May 23, 2020

Hmmm, for some reason I get an error when I try to run your program 😕

ffi-obj: couldn't get "cblas_scopy" from "libblas.so.3" (/lib64/libblas.so.3: undefined symbol: cblas_scopy)
  context...:
   /usr/local/share/racket/collects/ffi/../racket/private/more-scheme.rkt:261:28
   /usr/local/share/racket/collects/ffi/unsafe.rkt:249:2: get-ffi-obj*
   '#%embedded:flmatrix:: [running body]
   temp35_0
   for-loop
   run-module-instance!
   for-loop
   [repeats 1 more time]
   run-module-instance!
   perform-require!
   top-level: [running body]
   eval-one-top
   loop
   [repeats 1 more time]

I have checked and ensured that I have all of BLAS, LAPACK and ATLAS installed, as well as their -devel versions. I have also ensured that I have a copy of your flmatrix.rkt file in the local directory. It builds fine with raco make, but I hit this error at runtime, whether I use the racket -tm style, or pre-build with raco exe.

I see in your flmatrix file that you have confirmed it works on Debian. Do you know which BLAS package you installed there? I'm on Fedora 31 (I should really add that to the README...), but I can't imagine that Debian would have something and I couldn't possibly get it on Fedora.

@Metaxal
Copy link

Metaxal commented May 23, 2020

Here's what I have installed

$ locate libblas
/etc/alternatives/libblas.a-x86_64-linux-gnu
/etc/alternatives/libblas.so-x86_64-linux-gnu
/etc/alternatives/libblas.so.3-x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libblas.a
/usr/lib/x86_64-linux-gnu/libblas.so
/usr/lib/x86_64-linux-gnu/libblas.so.3
/usr/lib/x86_64-linux-gnu/atlas/libblas.so.3
/usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
/usr/lib/x86_64-linux-gnu/blas/libblas.a
/usr/lib/x86_64-linux-gnu/blas/libblas.so
/usr/lib/x86_64-linux-gnu/blas/libblas.so.3
/usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
/usr/share/doc/libblas-common
/usr/share/doc/libblas-dev
/usr/share/doc/libblas3
/usr/share/doc/libblas-common/changelog.Debian.gz
/usr/share/doc/libblas-common/copyright
/usr/share/doc/libblas-dev/README.if-you-look-for-libcblas.so.3
/usr/share/doc/libblas-dev/changelog.Debian.gz
/usr/share/doc/libblas-dev/copyright
/usr/share/doc/libblas3/changelog.Debian.gz
/usr/share/doc/libblas3/copyright
/usr/share/lintian/overrides/libblas3
/var/lib/dpkg/alternatives/libblas.so-x86_64-linux-gnu
/var/lib/dpkg/alternatives/libblas.so.3-x86_64-linux-gnu
/var/lib/dpkg/info/libblas-common.list
/var/lib/dpkg/info/libblas-common.md5sums
/var/lib/dpkg/info/libblas-dev:amd64.list
/var/lib/dpkg/info/libblas-dev:amd64.md5sums
/var/lib/dpkg/info/libblas-dev:amd64.mtree
/var/lib/dpkg/info/libblas-dev:amd64.postinst
/var/lib/dpkg/info/libblas-dev:amd64.preinst
/var/lib/dpkg/info/libblas-dev:amd64.prerm
/var/lib/dpkg/info/libblas3:amd64.list
/var/lib/dpkg/info/libblas3:amd64.md5sums
/var/lib/dpkg/info/libblas3:amd64.mtree
/var/lib/dpkg/info/libblas3:amd64.postinst
/var/lib/dpkg/info/libblas3:amd64.preinst
/var/lib/dpkg/info/libblas3:amd64.prerm
/var/lib/dpkg/info/libblas3:amd64.shlibs
/var/lib/dpkg/info/libblas3:amd64.triggers
$ locate liblapack
/etc/alternatives/liblapack.a-x86_64-linux-gnu
/etc/alternatives/liblapack.so-x86_64-linux-gnu
/etc/alternatives/liblapack.so.3-x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/liblapack.a
/usr/lib/x86_64-linux-gnu/liblapack.so
/usr/lib/x86_64-linux-gnu/liblapack.so.3
/usr/lib/x86_64-linux-gnu/liblapack_atlas.so.3
/usr/lib/x86_64-linux-gnu/liblapack_atlas.so.3.10.3
/usr/lib/x86_64-linux-gnu/liblapack_pic.a
/usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3
/usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3
/usr/lib/x86_64-linux-gnu/lapack/liblapack.a
/usr/lib/x86_64-linux-gnu/lapack/liblapack.so
/usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3
/usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
/usr/share/doc/liblapack-dev
/usr/share/doc/liblapack3
/usr/share/doc/liblapack-dev/changelog.Debian.gz
/usr/share/doc/liblapack-dev/copyright
/usr/share/doc/liblapack3/changelog.Debian.gz
/usr/share/doc/liblapack3/copyright
/usr/share/lintian/overrides/liblapack3
/var/lib/dpkg/alternatives/liblapack.so-x86_64-linux-gnu
/var/lib/dpkg/alternatives/liblapack.so.3-x86_64-linux-gnu
/var/lib/dpkg/info/liblapack-dev:amd64.list
/var/lib/dpkg/info/liblapack-dev:amd64.md5sums
/var/lib/dpkg/info/liblapack-dev:amd64.mtree
/var/lib/dpkg/info/liblapack-dev:amd64.postinst
/var/lib/dpkg/info/liblapack-dev:amd64.preinst
/var/lib/dpkg/info/liblapack-dev:amd64.prerm
/var/lib/dpkg/info/liblapack3:amd64.list
/var/lib/dpkg/info/liblapack3:amd64.md5sums
/var/lib/dpkg/info/liblapack3:amd64.mtree
/var/lib/dpkg/info/liblapack3:amd64.postinst
/var/lib/dpkg/info/liblapack3:amd64.preinst
/var/lib/dpkg/info/liblapack3:amd64.prerm
/var/lib/dpkg/info/liblapack3:amd64.shlibs
/var/lib/dpkg/info/liblapack3:amd64.triggers

@jcoo092
Copy link
Owner

jcoo092 commented May 24, 2020

As a note for future reference, we eventually managed to find a solution: It turned out that on my system there are both libblas.so and libcblas.so files. Changing the referenced file in flmatrix.rkt from libblas.so to libcblas.so got everything working. Apparently, on Debian, they folded BLAS and CBLAS into one so simply installing BLAS works, whereas it looks like on Fedora/RHEL they haven't combined them so far - at least not with Fedora 31.

@jcoo092 jcoo092 merged commit 82323da into jcoo092:master May 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants