-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Openblas spams (40k interrupts/s) the sched_yield syscall, resulting in severe performance degradation.
Highest impact:
/usr/lib/x86_64-linux-gnu/libc-2.31.so(__sched_yield+0x7) [0xe14e7]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_nt+0xe35) [0x1f4c75]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(exec_blas+0xce) [0x348e8e]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_nt+0x4f3) [0x1f4333]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_tn+0x117) [0x1f5097]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(cblas_sgemm+0x449) [0x1215d9]
[...]
unexpected_backtracing_error [0x7fdcfc459831]
Less but still noticable impact:
/usr/lib/x86_64-linux-gnu/libc-2.31.so(__sched_yield+0x7) [0xe14e7]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_nt+0xe35) [0x1f4c75]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(openblas_read_env+0x36d) [0x34885d]
/usr/lib/x86_64-linux-gnu/libpthread-2.31.so(start_thread+0xd7) [0x7ea7]
/usr/lib/x86_64-linux-gnu/libc-2.31.so(clone+0x3f) [0xfba2f]

pick_next_task_fair, pick_next_task, update_curr, etc.. are called by the sched_yield syscall.
The percentages are global, that syscall needs >30% of my CPU
