Skip to content

autodiff and rsmpi #137

@jedbrown

Description

@jedbrown

This is based on this rsmpi example. After checking out that branch, please run

$ cargo mpirun -n 2 --example=dot_enzyme --release
[...]
source_id: DefId(0:13 ~ dot_enzyme[209b]::dot_parallel)
num_fnc_args: 5
input_activity.len(): 5
error: <unknown>:0:0: in function preprocess__ZN10dot_enzyme12dot_parallel17h48b7e665abd76ccfE double (ptr, ptr, i64, ptr, i64): Enzyme: cannot compute with global variable that doesn't have marked shadow global
@RSMPI_DOUBLE = external local_unnamed_addr global ptr

Note that RSMPI_DOUBLE is defined in mpi-sys/src/rsmpi.c as

const MPI_Datatype RSMPI_DOUBLE = MPI_DOUBLE;

so that the value can be used by Rust FFI bindings.

Debug profile

I have a different error with the debug profile.

$ cargo mpirun -n 2 --example=dot_enzyme
[...]
  %23 = call i32 @MPI_Allreduce(ptr %10, ptr %12, i32 %14, ptr %17, ptr %19, ptr %21) #95, !dbg !302974
  br label %25, !dbg !302975

24:                                               ; No predecessors!

25:                                               ; preds = %7
}

 call:   %14 = call i32 @MPI_Allreduce(ptr %7, ptr %8, i32 %9, ptr %11, ptr %12, ptr %13) #95, !dbg !2527
 unhandled mpi_allreduce op:   %12 = call ptr @"_ZN68_$LT$mpi..collective..SystemOperation$u20$as$u20$mpi..raw..AsRaw$GT$6as_raw17h490677fc1f8d0a6fE"(ptr align 8 %6) #95, !dbg !2525

Meta

rustc --version --verbose:

rustc 1.77.0-nightly (63fa87211 2024-07-16)
binary: rustc
commit-hash: 63fa87211c25d89e585d76e2a15724a600eff903
commit-date: 2024-07-16
host: x86_64-unknown-linux-gnu
release: 1.77.0-nightly
LLVM version: 17.0.6

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions