用户
 找回密码
 立即注册
cs.yeung 该用户已被删除
发表于 2016-12-30 22:24:31
84110
本帖最后由 cs.yeung 于 2016-12-30 22:31 编辑

在MATLAB中使用多GPU做并行计算实际上是将多块GPU分别赋予个计算机中的每个CPU核心(线程),即为MATLAB中worker,而MATLAB中涉及多线程并行计算往往跟pool有关。一台计算机的CPU核心或者GPU都是有限的,但是可以利用MATLAB提供的MDCS服务奖多台计算并联起来,然后在建立并行池,然后将GPU赋予给每个workers,最后使用MATLAB提供的多线程并行计算函数,如parfoor,spmd等等即可实现多GPU并行计算。如何建立分布式集群,请参看:http://developer.nvidia-china.co ... 7994&extra=page%3D1,如果你使用过MATLABCPU并行应该知道matlabpool,当前,在matlab中如果调用多GPU那么需要开启多个pool,一个pool对应一个GPU,也就是一个CPU worker对应一块GPU,如
  1. matlabpool 2
  2. spmd
  3.         gpuDevice
  4. end

  5. spmd
  6. if labindex ==1
  7. gpuDevice(2);
  8. end
  9. end

  10. spmd
  11. gpuDevice
  12. end
复制代码
如果计算机中存在两块GPU,则得到如下结果:
  1. Lab 1:
  2.   
  3.   ans =
  4.   
  5.     CUDADevice with properties:
  6.   
  7.                         Name: 'Quadro FX 370'
  8.                        Index: 2
  9.            ComputeCapability: '1.1'
  10.               SupportsDouble: 0
  11.                DriverVersion: 5.5000
  12.               ToolkitVersion: 5
  13.           MaxThreadsPerBlock: 512
  14.             MaxShmemPerBlock: 16384
  15.           MaxThreadBlockSize: [512 512 64]
  16.                  MaxGridSize: [65535 65535 1]
  17.                    SIMDWidth: 32
  18.                  TotalMemory: 268435456
  19.                   FreeMemory: NaN
  20.          MultiprocessorCount: 2
  21.                 ClockRateKHz: 720000
  22.                  ComputeMode: 'Default'
  23.         GPUOverlapsTransfers: 1
  24.       KernelExecutionTimeout: 1
  25.             CanMapHostMemory: 1
  26.              DeviceSupported: 0
  27.               DeviceSelected: 1
  28.   
  29. Lab 2:
  30.   
  31.   ans =
  32.   
  33.     CUDADevice with properties:
  34.   
  35.                         Name: 'Tesla K20c'
  36.                        Index: 1
  37.            ComputeCapability: '3.5'
  38.               SupportsDouble: 1
  39.                DriverVersion: 5.5000
  40.               ToolkitVersion: 5
  41.           MaxThreadsPerBlock: 1024
  42.             MaxShmemPerBlock: 49152
  43.           MaxThreadBlockSize: [1024 1024 64]
  44.                  MaxGridSize: [2.1475e+09 65535 65535]
  45.                    SIMDWidth: 32
  46.                  TotalMemory: 5.0330e+09
  47.                   FreeMemory: 4.9166e+09
  48.          MultiprocessorCount: 13
  49.                 ClockRateKHz: 705500
  50.                  ComputeMode: 'Default'
  51.         GPUOverlapsTransfers: 1
  52.       KernelExecutionTimeout: 0
  53.             CanMapHostMemory: 1
  54.              DeviceSupported: 1
  55.               DeviceSelected: 1
复制代码


以上转载自:https://zhidao.baidu.com/question/580164775.html

使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册