Arquivos
rocm-systems/test/TestChecks.hpp
T

64 linhas
1.6 KiB
C++
Original Visão Normal Histórico

2021-05-14 09:38:49 -06:00
#ifndef TESTCHECKS_HPP
#define TESTCHECKS_HPP
#define HIP_CALL(x) ASSERT_EQ(x, hipSuccess)
#define NCCL_CALL(x) ASSERT_EQ(x, ncclSuccess)
#define SYSCHECK_TEST(call, name) do { \
int retval; \
SYSCHECKVAL_TEST(call, name, retval); \
} while (false)
#define SYSCHECKVAL_TEST(call, name, retval) do { \
SYSCHECKSYNC_TEST(call, name, retval); \
if (retval == -1) { \
printf("Call to %s failed : %s\n", name, strerror(errno)); \
fflush(stdout); \
return ncclSystemError; \
} \
} while (false)
#define SYSCHECK_GOTO_TEST(call, name, label) do { \
int retval; \
SYSCHECKVAL_GOTO_TEST(call, name, retval, label); \
} while (false)
#define SYSCHECKVAL_GOTO_TEST(call, name, retval, label) do { \
SYSCHECKSYNC_TEST(call, name, retval); \
if (retval == -1) { \
printf("Call to %s failed : %s\n", name, strerror(errno)); \
fflush(stdout); \
goto label; \
} \
} while (false)
#define SYSCHECKSYNC_TEST(call, name, retval) do { \
retval = call; \
if (retval == -1 && (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)) { \
} else { \
break; \
} \
} while(true)
#define NCCLCHECK_BARRIER_TEST(call, name, rank) do { \
ncclResult_t retval; \
retval = call; \
if (retval != ncclSuccess) { \
printf("Rank %d call to %s failed : %s\n", rank, name, strerror(errno)); \
fflush(stdout); \
return; \
} \
} while (false)
#define NCCLCHECK_TEST(call, name) do { \
ncclResult_t retval; \
retval = call; \
if (retval != ncclSuccess) { \
printf("Call to %s failed : %s\n", name, strerror(errno)); \
fflush(stdout); \
return retval; \
} \
} while (false)
#endif