NCCL初始化及ncclUniqueId产生的方法是什么

其他教程   发布日期:2小时前   浏览次数:73

这篇“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产生的方法是什么的资料请关注九品源码其它相关文章!