Functional tests without MPI support (#343)
* Let functional tests build without external MPI
* Fix error conditions when using uuid startup with internal MPI
* Do not abort if libibverbs is not found but not using GDA
* Enabled RO functional test initialized with TEST_UUID
* Reduce load time for ro backend_can_run and prevent mpilib_dlclose
crashing
* Fix case TEST_UUID=1, ROCSHMEM_BACKEND='' (autoloading gda)
[ROCm/rocshmem commit: c99bc21e10]
This commit is contained in:
committed by
GitHub
parent
1c3ce17f13
commit
92c56e7fbd
@@ -29,6 +29,7 @@
|
||||
#include <cassert>
|
||||
|
||||
#include "backend_gda.hpp"
|
||||
#include "ibv_wrapper.hpp"
|
||||
#include "envvar.hpp"
|
||||
#include "gda_team.hpp"
|
||||
#include "mpi_instance.hpp"
|
||||
@@ -649,15 +650,17 @@ int GDABackend::backend_can_run() {
|
||||
void *handle{nullptr};
|
||||
GDAProvider requested = requested_provider();
|
||||
|
||||
/* Basic verbs? */
|
||||
if (!ibv.is_initialized) return ROCSHMEM_ERROR;
|
||||
|
||||
/* Try opening bnxt DV libraries */
|
||||
#if defined(GDA_BNXT)
|
||||
if (requested == GDAProvider::UNSET || requested == GDAProvider::BNXT) {
|
||||
handle = bnxt_dv_dlopen();
|
||||
if (handle) {
|
||||
auto ret = has_active_ib_interface(GDAProvider::BNXT);
|
||||
dlclose(handle);
|
||||
if (has_active_ib_interface(GDAProvider::BNXT)) {
|
||||
return ROCSHMEM_SUCCESS;
|
||||
}
|
||||
if (ret) return ROCSHMEM_SUCCESS;
|
||||
DPRINTF("BNXT DV library found but no active InfiniBand interface available\n");
|
||||
}
|
||||
}
|
||||
@@ -668,10 +671,9 @@ int GDABackend::backend_can_run() {
|
||||
if (requested == GDAProvider::UNSET || requested == GDAProvider::IONIC) {
|
||||
handle = ionic_dv_dlopen();
|
||||
if (handle) {
|
||||
auto ret = has_active_ib_interface(GDAProvider::IONIC);
|
||||
dlclose(handle);
|
||||
if (has_active_ib_interface(GDAProvider::IONIC)) {
|
||||
return ROCSHMEM_SUCCESS;
|
||||
}
|
||||
if (ret) return ROCSHMEM_SUCCESS;
|
||||
DPRINTF("IONIC DV library found but no active InfiniBand interface available\n");
|
||||
}
|
||||
}
|
||||
@@ -682,10 +684,9 @@ int GDABackend::backend_can_run() {
|
||||
if (requested == GDAProvider::UNSET || requested == GDAProvider::MLX5) {
|
||||
handle = mlx5_dv_dlopen();
|
||||
if (handle) {
|
||||
auto ret = has_active_ib_interface(GDAProvider::MLX5);
|
||||
dlclose(handle);
|
||||
if (has_active_ib_interface(GDAProvider::MLX5)) {
|
||||
return ROCSHMEM_SUCCESS;
|
||||
}
|
||||
if (ret) return ROCSHMEM_SUCCESS;
|
||||
DPRINTF("MLX5 DV library found but no active InfiniBand interface available\n");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user