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

其他教程   发布日期:2025年03月16日   浏览次数:142

这篇“NCCL初始化及ncclUniqueId产生的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“NCCL初始化及ncclUniqueId产生的方法是什么”文章吧。

NCCL是英伟达开源的GPU通信库,支持集合通信和点对点通信。

看下官方给的一个demo:

  1. #include <stdio.h>
  2. #include "cuda_runtime.h"
  3. #include "nccl.h"
  4. #include "mpi.h"
  5. #include <unistd.h>
  6. #include <stdint.h>
  7. #define MPICHECK(cmd) do {
  8. int e = cmd;
  9. if( e != MPI_SUCCESS ) {
  10. printf("Failed: MPI error %s:%d '%d'
  11. ",
  12. __FILE__,__LINE__, e);
  13. exit(EXIT_FAILURE);
  14. }
  15. } while(0)
  16. #define CUDACHECK(cmd) do {
  17. cudaError_t e = cmd;
  18. if( e != cudaSuccess ) {
  19. printf("Failed: Cuda error %s:%d '%s'
  20. ",
  21. __FILE__,__LINE__,cudaGetErrorString(e));
  22. exit(EXIT_FAILURE);
  23. }
  24. } while(0)
  25. #define NCCLCHECK(cmd) do {
  26. ncclResult_t r = cmd;
  27. if (r!= ncclSuccess) {
  28. printf("Failed, NCCL error %s:%d '%s'
  29. ",
  30. __FILE__,__LINE__,ncclGetErrorString(r));
  31. exit(EXIT_FAILURE);
  32. }
  33. } while(0)
  34. static uint64_t getHostHash(const char* string) {
  35. // Based on DJB2a, result = result * 33 ^ char
  36. uint64_t result = 5381;
  37. for (int c = 0; string[c] != '

以上就是NCCL初始化及ncclUniqueId产生的方法是什么的详细内容,更多关于NCCL初始化及ncclUniqueId产生的方法是什么的资料请关注九品源码其它相关文章!