Open yurikamome opened 6 years ago
Hello,
Because MOMMS uses Rust nightly, and (to a lesser extent) because the low level interfaces in BLIS change occasionally, every so often I have to update MOMMS.
I'ill do so in the next couple of days, and feel free to ping me again if I haven't gotten to it by Monday.
This should be fixed by c463b10. BLIS added support for casting the output of the microkernel to a different datatype and I have added support for it.
Note that as of right now, MOMMS requires ICC to compile the HSW micro-kernels.
Let me know if it works for you.
Thanks a lot, Sir. I think I can finished the compilation now.
And could I ask how to run the binaries under target/release? I saw there are several files named "exper_l*", a "knm" and a libmomms.rlib. Running with "./exper_l3" seems not the right way.
Look in src/exper. The exper_l* executables run the experiments in there. The "./exper_l3" runs an experiment comparing GEMM performance implemented with the loops that make up Goto's algorithm and loops that make up another algorithm (without performing packing).
By running ".exper_l3" I got the following error message (compiled with 1.31.0-nightly):
./exper_l3
thread 'main' panicked at 'called Option::unwrap()
on a None
value', libcore/option.rs:355:21
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::panicking::default_hook::{{closure}}
at libstd/sys_common/backtrace.rs:71
2: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:227
at libstd/panicking.rs:476
3: std::panicking::continue_panic_fmt
at libstd/panicking.rs:390
4: rust_begin_unwind
at libstd/panicking.rs:325
5: core::panicking::panic_fmt
at libcore/panicking.rs:77
6: core::panicking::panic
at libcore/panicking.rs:52
7: momms::composables::spawn::cpuset_for_core
8: exper_l3::test
9: std::rt::lang_start::{{closure}}
10: main
11: __libc_start_main
12:
thread 'Result::unwrap()
on an Err
value: "PoisonError { inner: .. }"', libcore/result.rs:1009:5
What system and compiler are you using? The experiments spawn threads and use hwloc to bind them to CPUs, and it looks like the error you are encountering is occurring during that process.
I'm using: Linux 3.10.0-693.17.1.el7.x86_64 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) icc (ICC) 19.0.0.070 20180524 hwloc-2.0.2 llvm/clang 6.0.0
Hi, sorry I've been slow to work on this. I just pushed a commit to handle when the CPU binding using hwloc doesn't work. Instead of crashing, it just continues without doing CPU binding. Does it fix your issue?
To Whom It May Concern,
I am trying to compile MOMMS with rust-1.28.0-nightly and newest BLIS, but got the following error messages:
error[E0063]: missing field
dt_on_output
in initializer ofkern::ukernel_wrapper::blis_types::auxinfo_t
--> src/kern/ukernel_wrapper.rs:62:28
|
62 | let mut info = auxinfo_t{
| ^^^^^^^^^ missing
dt_on_output
error[E0063]: missing field
dt_on_output
in initializer ofkern::ukernel_wrapper::blis_types::auxinfo_t
--> src/kern/ukernel_wrapper.rs:79:28
|
79 | let mut info = auxinfo_t{
| ^^^^^^^^^ missing
dt_on_output
error[E0063]: missing field
dt_on_output
in initializer ofkern::ukernel_wrapper::blis_types::auxinfo_t
--> src/kern/ukernel_wrapper.rs:96:28
|
96 | let mut info = auxinfo_t{
| ^^^^^^^^^ missing
dt_on_output
error: aborting due to 3 previous errors
For more information about this error, try
rustc --explain E0063
.error: Could not compile
momms
.Could you please provide some help? Thanks very much.