3398fa78fe
* working tests for a single message size * move call_RCCL routine StandaloneUtils, create .cpp file for StandaloneUtils so that it can be included in several tests * simplify test invocation * remove unecessary logs and exit from ncclCommRegister * set expected results for allGather * skip test if nranks doesn't match number of gpus, call getAndDistributeNCCLid only from parent process * fix improper size of expected-results vector * Removing unused changes. * Refactored to create a new file for the forked collectives call, as StandaloneUtils is for the Standalone tests. Renamed the functions to be slightly more accurate and follow existing naming conventions. * Apply suggestions from code review Co-authored-by: corey-derochie-amd <161367113+corey-derochie-amd@users.noreply.github.com> --------- Co-authored-by: isaki001 <isakioti@banff-pla-r27-38.pla.dcgpu> Co-authored-by: corey-derochie-amd <161367113+corey-derochie-amd@users.noreply.github.com> Co-authored-by: Corey Derochie <corey.derochie@amd.com>
55 wiersze
2.0 KiB
C++
55 wiersze
2.0 KiB
C++
#ifndef STANDALONE_UTILS_H
|
|
#define STANDALONE_UTILS_H
|
|
|
|
#include <cstdio>
|
|
#include <vector>
|
|
#include <string>
|
|
#include <rccl/rccl.h>
|
|
|
|
#define HIPCALL(cmd) \
|
|
do { \
|
|
hipError_t error = (cmd); \
|
|
if (error != hipSuccess) \
|
|
{ \
|
|
printf("Encountered HIP error (%s) at line %d in file %s\n", \
|
|
hipGetErrorString(error), __LINE__, __FILE__); \
|
|
exit(-1); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define NCCLCHECK(cmd) do { \
|
|
ncclResult_t res = cmd; \
|
|
if (res != ncclSuccess) { \
|
|
printf("NCCL failure %s:%d '%s'\n", \
|
|
__FILE__,__LINE__,ncclGetErrorString(res)); \
|
|
} \
|
|
} while(0)
|
|
|
|
// should be 112, temp fix to make CI pass
|
|
#define MAX_STACK_SIZE 448
|
|
|
|
#ifdef ENABLE_LL128
|
|
#define MAX_STACK_SIZE_gfx90a 320
|
|
#else
|
|
#define MAX_STACK_SIZE_gfx90a MAX_STACK_SIZE
|
|
#endif
|
|
|
|
namespace RcclUnitTesting
|
|
{
|
|
struct KernelInfo {
|
|
std::string name;
|
|
int privateSegmentFixedSize = 0;
|
|
};
|
|
|
|
struct ArchInfo {
|
|
std::string archName;
|
|
std::vector<KernelInfo> kernels;
|
|
};
|
|
|
|
std::string executeCommand(const char* cmd);
|
|
|
|
std::vector<std::string> splitString(const std::string& str, char delimiter);
|
|
|
|
ArchInfo parseMetadata(const std::vector<std::string>& list);
|
|
}
|
|
#endif |