Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Jacob Bogers
@Jacob_Bogers_twitter
finished somemonth ago
Özgür Akkurt
@oezgurmakkurt
hi, how can I see what blocksize openblas uses on my cpu
Jacob Bogers
@Jacob_Bogers_twitter
what do you mean by "blocksize"?
what is your cpu?
Plain Wu
@plainwuatdeepforce_gitlab
Hi, I got a bunch of errors when building OpenBlas on nVidia Nano (CORTEXA57):
OpenBLAS/Source/kernel/arm64/cgemm_kernel_8x4.S:1455: Error: unknown mnemonic op_ri' --op_ri v19.4s,v2.4s,v9.s[0]' ... lots of op_ir, op_rr those unknowns. Any one came across this issue?
Plain Wu
@plainwuatdeepforce_gitlab
My bad. I tried on latest commit, and it goes well. The error occurred on tag v0.3.2.
Ruchika
@ruchikabgosain
Hi, im trying to test my patch from github on SUSE linuxone server. I have successfully ssh'ed and got the terminal access for the same. Can i know how to proceed?
riddl
@riddl_gitlab

Hi, im trying to use Howdy, tooling for using face recognition to authenticate myself in linux. I got it working during gdm login, however when i use it in terminal whole scripting fails on -8 status. I've checked that its SIGFPE what killed the scripts. In journalctrl I can see this

kernel: traps: python3[9048] trap divide error ip:7fa84b310b4f sp:7ffc482bec60 error:0 in libopenblaso-r0.3.10.so[7fa84b226000+20e5000]

is it openblas issue?

I run fedora 32 so my openblas is openblas-openmp-0.3.10-4.fc32.x86_64
Andrew
@brada4
Could you try updating to 0.3.10 ? It might be bug (likely division by zero) is fixed. If not in 0.3.10 please post in bug tracker at github
To get things moving faster post lscpu and how you get to the crash
Wait a second. yuck. its the latest version.
Andrew
@brada4
run whole python script in gdb (gdb python script.py) and get at least backtrace (bt command) on crash. It certainly should not be dividing by zero anywhere.
Иван Сердюк
@oceanfish81_twitter
Hi. How to build OpenBLAS properly, on https://www.sifive.com/cores/u54-mc ?
Andrew
@brada4
Needs recent versions.
make HOSTCC=cc CC=cross-compiler-riscv64 FC=NONE(or cross-fortran) TARGET=RISCV64_GENERIC NUM_THREADS=4
Or if you have native linux or bsd just type make in toplevel directory
Better post errors via github issue, this one is pretty idle
Makefile.rule explains most options possible.
Иван Сердюк
@oceanfish81_twitter
$ make
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_NAME = "uk_UA.UTF-8",
LC_NUMERIC = "uk_UA.UTF-8",
LC_ADDRESS = "uk_UA.UTF-8",
LC_MONETARY = "uk_UA.UTF-8",
LC_TIME = "uk_UA.UTF-8",
LC_TELEPHONE = "uk_UA.UTF-8",
LC_MEASUREMENT = "uk_UA.UTF-8",
LC_PAPER = "uk_UA.UTF-8",
LC_IDENTIFICATION = "uk_UA.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_NAME = "uk_UA.UTF-8",
LC_NUMERIC = "uk_UA.UTF-8",
LC_ADDRESS = "uk_UA.UTF-8",
LC_MONETARY = "uk_UA.UTF-8",
LC_TIME = "uk_UA.UTF-8",
LC_TELEPHONE = "uk_UA.UTF-8",
LC_MEASUREMENT = "uk_UA.UTF-8",
LC_PAPER = "uk_UA.UTF-8",
LC_IDENTIFICATION = "uk_UA.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
getarch_2nd.c: In function 'main':
getarch_2nd.c:14:35: error: 'SGEMM_DEFAULT_UNROLL_M' undeclared (first use in this function); did you mean 'SBGEMM_DEFAULT_UNROLL_M'?
14 | printf("SGEMM_UNROLL_M=%d\n", SGEMM_DEFAULT_UNROLL_M);
| ^~~~~~
| SBGEMM_DEFAULT_UNROLL_M
getarch_2nd.c:14:35: note: each undeclared identifier is reported only once for each function it appears in
getarch_2nd.c:15:35: error: 'SGEMM_DEFAULT_UNROLL_N' undeclared (first use in this function); did you mean 'SBGEMM_DEFAULT_UNROLL_N'?
15 | printf("SGEMM_UNROLL_N=%d\n", SGEMM_DEFAULT_UNROLL_N);
| ^~~~~~
| SBGEMM_DEFAULT_UNROLL_N
getarch_2nd.c:16:35: error: 'DGEMM_DEFAULT_UNROLL_M' undeclared (first use in this function); did you mean 'XGEMM_DEFAULT_UNROLL_M'?
16 | printf("DGEMM_UNROLL_M=%d\n", DGEMM_DEFAULT_UNROLL_M);
| ^~~~~~
| XGEMM_DEFAULT_UNROLL_M
getarch_2nd.c:17:35: error: 'DGEMM_DEFAULT_UNROLL_N' undeclared (first use in this function); did you mean 'XGEMM_DEFAULT_UNROLL_N'?
17 | printf("DGEMM_UNROLL_N=%d\n", DGEMM_DEFAULT_UNROLL_N);
| ^~~~~~
| XGEMM_DEFAULT_UNROLL_N
getarch_2nd.c:21:35: error: 'CGEMM_DEFAULT_UNROLL_M' undeclared (first use in this function); did you mean 'XGEMM_DEFAULT_UNROLL_M'?
21 | printf("CGEMM_UNROLL_M=%d\n", CGEMM_DEFAULT_UNROLL_M);
| ^~~~~~
| XGEMM_DEFAULT_UNROLL_M
getarch_2nd.c:22:35: error: 'CGEMM_DEFAULT_UNROLL_N' undeclared (first use in this function); did you mean 'XGEMM_DEFAULT_UNROLL_N'?
22 | printf("CGEMM_UNROLL_N=%d\n", CGEMM_DEFAULT_UNROLL_N);
| ^~~~~~
| XGEMM_DEFAULT_UNROLL_N
getarch_2nd.c:23:35: error: 'ZGEMM_DEFAULT_UNROLL_M' undeclared (first use in this function); did you mean 'XGEMM_DEFAULT_UNROLL_M'?
23 | printf("ZGEMM_UNROLL_M=%d\n", ZGEMM_DEFAULT_UNROLL_M);
| ^~~~~~
| XGEMM_DEFAULT_UNROLL_M
getarch_2nd.c:24:35: error: 'ZGEMM_DEFAULT_UNROLL_N' undeclared (first use in this function); did you mean 'XGEMM_DEFAULT_UNROLL_N'?
24 | printf("ZGEMM_UNROLL_N=%d\n", ZGEMM_DEFAULT_UNROLL_N);
| ^~~~~~
| XGEMM_DEFAULT_UNROLL_N
make: * [Makefile.prebuild:74: getarch_2nd] Error 1
OpenBLAS: Detecting fortran compiler failed. Cannot compile LAPACK. Only compile BLAS.
make[1]: Entering directory '/home/ivan/OpenBLAS/interface'
Makefile:1638: warning: overriding recipe for
cc1: error: '-march=loongson3a': ISA string must begin with rv32 or rv64
cc1: error: '-march=loongson3a': ISA string must begin with rv32 or rv64
cc1: error: '-march=loongson3a': ISA string must begin with rv32 or rv64
cc1: error: requested ABI requires '-march' to subsume the 'D' extension
cc1: error: ABI requires '-march=rv64'
cc1: error: requested ABI requires '-march' to subsume the 'D' extension
cc1: error: ABI requires '-march=rv64'
cc1: error: requested ABI requires '-march' to subsume the 'D' extension
cc1: error: ABI requires '-march=rv64'
cc1: error: '-march=loongson3a': ISA string must begin with rv32 or rv64
make[1]: [Makefile:819: saxpy.o] Error 1
make[1]:
Waiting for unfinished jobs....
make[1]: [Makefile:891: sswap.o] Error 1
make[1]:
[Makefile:873: scopy.o] Error 1
cc1: error: requested ABI requires '-march' to subsume the 'D' extension
cc1: error: ABI requires '-march=rv64'
make[1]: [Makefile:846: sscal.o] Error 1
make[1]: Leaving directory '/home/ivan/OpenBLAS/interface'
make:
[Makefile:165: libs] Error 1
Иван Сердюк
@oceanfish81_twitter

I tried

$ make ARCH=rv64imafdc

but it failed with

Makefile.system:1346: Makefile.rv64imafdc: No such > file or directory
make: * No rule to make target 'Makefile.rv64imafdc'. Stop.

Иван Сердюк
@oceanfish81_twitter

I tried

$ make ARCH=riscv64

and it failed with

cc1: error: '-march=loongson3a': ISA string must begin with rv32 or rv64
cc1: error: '-march=loongson3a': ISA string must begin with rv32 or rv64

Andrew
@brada4

loongson is MIPS, not RISCV processor.
First do
export LANG=C
to get rid of irrelevant locale falback warnings

Then make TARGET=RISCV64_GENERIC that would use pre-set target names (see kernel/riscv64/`

Иван Сердюк
@oceanfish81_twitter

loongson is MIPS, not RISCV processor.
First do
export LANG=C
to get rid of irrelevant locale falback warnings

Then make TARGET=RISCV64_GENERIC that would use pre-set target names (see kernel/riscv64/`

and why is it picked up on RISC-V board, hm?

First do
export LANG=C
to get rid of irrelevant locale falback warnings

OK, I just did that

Then make TARGET=RISCV64_GENERIC that would use pre-set target names (see kernel/riscv64/`

OK, it started to compile...

And what about the fact that U54-MC (at least - for one of the cores) has an arch. rv64imafdc ? What about the other ISA extensions, which are implemented? Any affect on the current OpenBLAS implementation?
Иван Сердюк
@oceanfish81_twitter
What do you know about the use cases of OpenBLAS, for https://vespa.ai/ ?
Andrew
@brada4
What you compiled is generic C "kernels" that split work across all CPUs in some cases, and vectorizes only how/if gcc does it. there is other TARGET=C910V that uses some risv vector extension explicitly. Build tests are in fortran, if that extension is absent you will get SIGILL later with overly advanced ISA used.
Aparently contributor did not add getarch pieces to detect between generic CPU and one having their extension.
You may try gcc -march=native -Q --help=target to see which ISAs gcc detects as available and add all -mavx style flags like CCOMMON_OPTS=-mavx -mavx2 -mavx5 so that compiler at least has an option to emit them
COMMON_OPTS+="-mext1 -mext2"
Andrew
@brada4
Use cases: ML operates on gradually smaller matrices, try OPENBLAS_NUM_THREADS=1 and compare time of same sample, if it is worse in SMP case fill a bug report, perf record ; perf report result is most helpful then (from both runs)
Иван Сердюк
@oceanfish81_twitter

Use cases: ML operates on gradually smaller matrices, try OPENBLAS_NUM_THREADS=1 and compare time of same sample, if it is worse in SMP case fill a bug report, perf record ; perf report result is most helpful then (from both runs)

@kkraune , please comment on this

Иван Сердюк
@oceanfish81_twitter

You may try gcc -march=native -Q --help=target to see which ISAs gcc detects as available and add all -mavx style flags like CCOMMON_OPTS=-mavx -mavx2 -mavx5 so that compiler at least has an option to emit them

@brada4 , here is what worked for me ("native" was rejected by gcc):

$ gcc -march=rv64imafdc -Q --help=target
The following options are target specific:
-mabi= lp64d
-malign-data= xlen
-march= rv64imafdc
-mbionic [disabled]
-mbranch-cost=N 0
-mcmodel= medlow
-mdiv [disabled]
-mexplicit-relocs [disabled]
-mfdiv [disabled]
-mglibc [enabled]
-mmusl [disabled]
-mplt [enabled]
-mpreferred-stack-boundary= 0
-mrelax [enabled]
-mriscv-attribute [enabled]
-msave-restore [disabled]
-msmall-data-limit=N 8
-mstrict-align [disabled]
-mtune=PROCESSOR
-muclibc [disabled]

Supported ABIs (for use with the -mabi= option):
ilp32 ilp32d ilp32e ilp32f lp64 lp64d lp64f

Known code models (for use with the -mcmodel= option):
medany medlow

Known data alignment choices (for use with the -malign-data= option):
natural xlen

Andrew
@brada4
Just add that -march flag then. gcc does not detect ISAs, that relieves a bit that openblas is not alone in this.
I just characterized ML use case, that it works BLAS L3 GEMM on smaller and smaller matrices and sometimes threading thresholds are visibly pessimal for ML use, nothing RISCV specific, but a regression better addressed for all platforms' benefit
Иван Сердюк
@oceanfish81_twitter
How the use case with matrix multiplication, for OpenBLAS, correlate with https://www.youtube.com/watch?v=cPFZFSROxLk&feature=youtu.be ?
@fhahn , any comments?
Andrew
@brada4
in x86_64 (and power, and arm, and zseries) case OpenBLAS has optimized compute kernels targetting vector ISAs available. in riscv case - clang better than gcc after watching videos.
provided clang really targets riscv vector ISAs....
anushkazinc
@anushkazinc
Hi! I am new to OpenBLAS. I have a problem. I tried to build the OpenBlas in ubuntu and use the following command: 1. git clone 2. mkdir build 3. cmake "path to sorce tree" 4. then I tried to run a benchmark but it showed that "common.h" file is not found. How should I proceed next?
Andrew
@brada4
cmake alone does not buld anything.
Easiest is to type make in top build directory.
And onece library is built you have to type same make command in benchmark directory. Them you can run them.
Andrew
@brada4
Also you have package present. apt install libblas-dev liblapack-dev libopenblas-dev then interface it normally. On average it will expose only standard BLAS to linker, which is good as it prevents making broken binaries and enables switxhing implementations at any time. (ATLAS, BLIS, MKL to name a few)
anushkazinc
@anushkazinc
Ok thank you so much it worked
Andrew
@brada4
Ur welcome.
xoviat
@xoviat
andrew, are you there?
Andrew
@brada4
Yup, sometimes.