-
Notifications
You must be signed in to change notification settings - Fork 623
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
sysbench memory and threads workload is giving less benchmarking results with iwasm than native aarch64 gcc execution #3752
Comments
I think the threads benchmark workload results you posted are duplicated Can you also tell me the command you used to compile aot files? For example, from that command, I can know whether you are using software boundary checks(it will result in performance loss when there are massive IO) You can also refer to this document to see whether there is any helpful information you could use to analyze the performance gap further |
then i am running sysbench workloads.
|
and one more thing for cpu workload also
In gcc compilation of sysbench i am getting below results.
why i am getting the result with this much difference in wasm module |
Can you share more details on how to compile sysbench to wasm? I try your command in root directory of sysbench and luajit report error for not supporting wasm architecture: # command
make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CC=/opt/wasi-sdk/bin/clang error: Making all in third_party/luajit
make[1]: Entering directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit'
make -C ./luajit clean
make[2]: Entering directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit'
make -C src clean
make[3]: Entering directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit/src'
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
Makefile:271: *** Unsupported target architecture. Stop.
make[3]: Leaving directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit/src'
make[2]: *** [Makefile:166: clean] Error 2
make[2]: Leaving directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit'
make[1]: *** [Makefile:501: lib/libluajit-5.1.a] Error 2
make[1]: Leaving directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit'
make: *** [Makefile:478: all-recursive] Error 1
tl in 🌐 TL-Work-PC in sysbench on master [?]
❯ make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CC=/opt/wasi-sdk/bin/clang
Making all in third_party/luajit
make[1]: Entering directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit'
make -C ./luajit clean
make[2]: Entering directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit'
make -C src clean
make[3]: Entering directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit/src'
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
lj_arch.h:69:2: error: "No support for this architecture (yet)"
69 | #error "No support for this architecture (yet)"
| ^
lj_arch.h:439:2: error: "No target architecture defined"
439 | #error "No target architecture defined"
| ^
2 errors generated.
Makefile:271: *** Unsupported target architecture. Stop.
make[3]: Leaving directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit/src'
make[2]: *** [Makefile:166: clean] Error 2
make[2]: Leaving directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit/luajit'
make[1]: *** [Makefile:501: lib/libluajit-5.1.a] Error 2
make[1]: Leaving directory '/home/tl/TL/clion_projects/sysbench/third_party/luajit'
make: *** [Makefile:478: all-recursive] Error 1 |
yeah, for wasm luajit is not supporting thats why i have used lua5.3 version. i will share my sysbench src for your reference. if you want to try with my sysbench src please change the makefile paths a/c. NOTE: In libraries dir i have liblua.a_bk file which include setjmp and longjmp functions. |
Hi, any update from your side.. Thanks in advance. |
Could you please tell me if any informantion is there for above issues. |
Sorry that I caught busy with a few other things last week, I will investigate it now |
ok thank you. |
Hi, @TianlongLiang thanks in Advance. |
I still can't compile your ./autogen.sh
# Add --with-pgsql to build with PostgreSQL support
./configure
make -j
CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CC=/opt/wasi-sdk/bin/clang And it still emit bunch of errors: In file included from /home/tl/TL/clion_projects/sysbench-wamr/sysbench_main/third_party/concurrency_kit/include/ck_spinlock.h:33:
/home/tl/TL/clion_projects/sysbench-wamr/sysbench_main/third_party/concurrency_kit/include/spinlock/dec.h:65:2: error: call to undeclared function 'ck_pr_fence_lock'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
65 | ck_pr_fence_lock();
| ^
/home/tl/TL/clion_projects/sysbench-wamr/sysbench_main/third_party/concurrency_kit/include/spinlock/dec.h:75:2: error: call to undeclared function 'ck_pr_fence_acquire'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
75 | ck_pr_fence_acquire();
| ^
/home/tl/TL/clion_projects/sysbench-wamr/sysbench_main/third_party/concurrency_kit/include/spinlock/dec.h:99:2: error: call to undeclared function 'ck_pr_fence_lock'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
99 | ck_pr_fence_lock();
| ^
/home/tl/TL/clion_projects/sysbench-wamr/sysbench_main/third_party/concurrency_kit/include/spinlock/dec.h:118:2: error: call to undeclared function 'ck_pr_fence_lock'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
118 | ck_pr_fence_lock();
| ^ I don't know whether there are some more configurations I need to modify other than Could you please provide more details on how to compile it using the existing library you sent me and the commands for compiling the wasm version sysbench? It seems that the simple |
Sorry for late reply, |
Subject of the issue
I have ran both modes like in native aarch64 with gcc and with WAMR runtime.
In aarch64 native with gcc its giving better result like below.
but for aarch64 with WAMR i getting less benchmarking results as below
Test case
sysbench.zip
in above zip file i have sysbench.aot which is compatible to aarch64.
Your environment
*Host OS: Ubuntu 22.04 LTS
*WAMR version: 2.1.1
*CPU architecture: aarch64
*RAM:3GB
*Internal space:128GB
Steps to reproduce
for iwasm
./iwasm sysbench.aot memory --memory-block-size=1K --memory-total-size=3G --time=3 run
for native aarch64, we have to install sysbench then have to run below command.
sysbench memory --memory-block-size=1K --memory-total-size=3G --time=3 run
Expected behavior
I ran sysbench.aot for cpu workload with iwasm i got better results than native sysbench aarch64 with gcc execution.
Actual behavior
But i am getting less benchmark results than sysbnech aarch64 with gcc execution
Extra Info
Here i am expecting better results with iwam sysbench.aot commnad, but i am getting less results that why i would like know the solution to get better result in iwasm.
the same thing i am getting in threads workload also.
please verify for threads workload also.
these are the commands
for iwasm with wasi-sdk23
for aarch64 with gcc
The text was updated successfully, but these errors were encountered: