arrayfire / arrayfire-rust

Rust wrapper for ArrayFire
BSD 3-Clause "New" or "Revised" License
810 stars 58 forks source link

"max" crash when using GTX 1060 and CUDA 11.8 #367

Open 3togo opened 1 year ago

3togo commented 1 year ago

The following code will crash when using GTX 1060 and CUDA 11.8

fn main(){
    let a = range::<f64>(dim4!(2), 0);
    let b = min(&a, 0);
    println!("b={}", &b);
}
Running `target\debug\lent_calibration.exe`
thread 'main' panicked at 'Error message: Error either in ArrayFire or in a project upstream
Last error: In function cuda::kernel::reduce_first_launcher
In file D:/j_opt/arrayfire/src/backend/cuda\kernel/reduce.hpp:469
CUDA Error (209): no kernel image is available for execution on the device

 0# af::exception::~exception in afcuda
 1# af::randomEngine::get in afcuda
 2# af::randomEngine::get in afcuda
 4# af_set_seed in afcuda
 5# af_min in af
 6# arrayfire::algorithm::min<f32> at C:\Program Files\AF_dlls\package\arrayfire-3.8.0\src\algorithm\mod.rs:154
 7# lent_calibration::main at C:\Users\eli\Desktop\eg_rust\src\main.rs:159
 8# core::ops::function::FnOnce::call_once<void (*)(),tuple$<> > at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\core\src\ops\function.rs:248
 9# std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> > at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\std\src\sys_common\backtrace.rs:125      
10# std::rt::lang_start::closure$0<tuple$<> > at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\std\src\rt.rs:166
11', C:\Program Files\AF_dlls\package\arrayfire-3.8.0\src\core\error.rs:37:14
stack backtrace:
   0:     0x7ff7f9d9a4d2 - std::backtrace_rs::backtrace::dbghelp::trace
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
   1:     0x7ff7f9d9a4d2 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff7f9d9a4d2 - std::sys_common::backtrace::_print_fmt
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\sys_common\backtrace.rs:66
   3:     0x7ff7f9d9a4d2 - std::sys_common::backtrace::_print::impl$0::fmt
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\sys_common\backtrace.rs:45
   4:     0x7ff7f9da8fcb - core::fmt::write
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\core\src\fmt\mod.rs:1202
   5:     0x7ff7f9d984fa - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\io\mod.rs:1679
   6:     0x7ff7f9d9c534 - std::sys_common::backtrace::_print
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\sys_common\backtrace.rs:48
   7:     0x7ff7f9d9c534 - std::sys_common::backtrace::print
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\sys_common\backtrace.rs:35
   8:     0x7ff7f9d9c534 - std::panicking::default_hook::closure$1
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:295
   9:     0x7ff7f9d9c16a - std::panicking::default_hook
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:314
  10:     0x7ff7f9d9cd21 - std::panicking::rust_panic_with_hook
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:698
  11:     0x7ff7f9d9cc2d - std::panicking::begin_panic_handler::closure$0
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:588
  12:     0x7ff7f9d9aeff - std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\sys_common\backtrace.rs:138
  13:     0x7ff7f9d9c8f0 - std::panicking::begin_panic_handler
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:584
  14:     0x7ff7f9daed75 - core::panicking::panic_fmt
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\core\src\panicking.rs:142
  15:     0x7ff7f9d91c72 - arrayfire::core::error::handle_error_general
                               at C:\Program Files\AF_dlls\package\arrayfire-3.8.0\src\core\error.rs:37
  16:     0x7ff7f9d91bba - arrayfire::core::error::Callback::call
                               at C:\Program Files\AF_dlls\package\arrayfire-3.8.0\src\core\error.rs:29
  17:     0x7ff7f9d91d58 - arrayfire::core::error::HANDLE_ERROR
                               at C:\Program Files\AF_dlls\package\arrayfire-3.8.0\src\core\error.rs:95
  18:     0x7ff7f9d914b9 - arrayfire::algorithm::min<f32>
                               at C:\Program Files\AF_dlls\package\arrayfire-3.8.0\src\algorithm\mod.rs:155
  19:     0x7ff7f9d912b3 - lent_calibration::main
                               at C:\Users\eli\Desktop\eg_rust\src\main.rs:159
  20:     0x7ff7f9d913bb - core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\core\src\ops\function.rs:248
  21:     0x7ff7f9d9122e - std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\std\src\sys_common\backtrace.rs:122
  22:     0x7ff7f9d9122e - std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\std\src\sys_common\backtrace.rs:122
  23:     0x7ff7f9d91541 - std::rt::lang_start::closure$0<tuple$<> >
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\std\src\rt.rs:166
  24:     0x7ff7f9d96f5e - core::ops::function::impls::impl$2::call_once
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\core\src\ops\function.rs:283
  25:     0x7ff7f9d96f5e - std::panicking::try::do_call
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:492
  26:     0x7ff7f9d96f5e - std::panicking::try
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:456
  27:     0x7ff7f9d96f5e - std::panic::catch_unwind
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panic.rs:137
  28:     0x7ff7f9d96f5e - std::rt::lang_start_internal::closure$2
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\rt.rs:148
  29:     0x7ff7f9d96f5e - std::panicking::try::do_call
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:492
  30:     0x7ff7f9d96f5e - std::panicking::try
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panicking.rs:456
  31:     0x7ff7f9d96f5e - std::panic::catch_unwind
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\panic.rs:137
  32:     0x7ff7f9d96f5e - std::rt::lang_start_internal
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120/library\std\src\rt.rs:148
  33:     0x7ff7f9d9151a - std::rt::lang_start<tuple$<> >
                               at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\std\src\rt.rs:165
  34:     0x7ff7f9d9136c - main
  35:     0x7ff7f9dad6a0 - invoke_main
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  36:     0x7ff7f9dad6a0 - __scrt_common_main_seh
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  37:     0x7ffee6c974b4 - BaseThreadInitThunk
  38:     0x7ffee70426a1 - RtlUserThreadStart
error: process didn't exit successfully: `target\debug\lent_calibration.exe` (exit code: 101)
umar456 commented 1 year ago

Did you build ArrayFire yourself? Based on the error message you need to add sm_61 when building ArrayFire.

3togo commented 1 year ago

adding sm_61 could not fix the problem compile arrayfire git version c++ in debug mode could avoid this problem