这篇“NCCL初始化及ncclUniqueId产生的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“NCCL初始化及ncclUniqueId产生的方法是什么”文章吧。
NCCL是英伟达开源的GPU通信库,支持集合通信和点对点通信。
看下官方给的一个demo:
#include <stdio.h>
#include "cuda_runtime.h"
#include "nccl.h"
#include "mpi.h"
#include <unistd.h>
#include <stdint.h>
#define MPICHECK(cmd) do {
int e = cmd;
if( e != MPI_SUCCESS ) {
printf("Failed: MPI error %s:%d '%d'
",
__FILE__,__LINE__, e);
exit(EXIT_FAILURE);
}
} while(0)
#define CUDACHECK(cmd) do {
cudaError_t e = cmd;
if( e != cudaSuccess ) {
printf("Failed: Cuda error %s:%d '%s'
",
__FILE__,__LINE__,cudaGetErrorString(e));
exit(EXIT_FAILURE);
}
} while(0)
#define NCCLCHECK(cmd) do {
ncclResult_t r = cmd;
if (r!= ncclSuccess) {
printf("Failed, NCCL error %s:%d '%s'
",
__FILE__,__LINE__,ncclGetErrorString(r));
exit(EXIT_FAILURE);
}
} while(0)
static uint64_t getHostHash(const char* string) {
// Based on DJB2a, result = result * 33 ^ char
uint64_t result = 5381;
for (int c = 0; string[c] != '
以上就是NCCL初始化及ncclUniqueId产生的方法是什么的详细内容,更多关于NCCL初始化及ncclUniqueId产生的方法是什么的资料请关注九品源码其它相关文章!