MCPcopy Create free account
hub / github.com/thygate/stable-diffusion-webui-depthmap-script / parallelize

Function parallelize

dzoedepth/utils/misc.py:251–282  ·  view source on GitHub ↗
(config, model, find_unused_parameters=True)

Source from the content-addressed store, hash-verified

249
250
251def parallelize(config, model, find_unused_parameters=True):
252
253 if config.gpu is not None:
254 torch.cuda.set_device(config.gpu)
255 model = model.cuda(config.gpu)
256
257 config.multigpu = False
258 if config.distributed:
259 # Use DDP
260 config.multigpu = True
261 config.rank = config.rank * config.ngpus_per_node + config.gpu
262 dist.init_process_group(backend=config.dist_backend, init_method=config.dist_url,
263 world_size=config.world_size, rank=config.rank)
264 config.batch_size = int(config.batch_size / config.ngpus_per_node)
265 # config.batch_size = 8
266 config.workers = int(
267 (config.num_workers + config.ngpus_per_node - 1) / config.ngpus_per_node)
268 print("Device", config.gpu, "Rank", config.rank, "batch size",
269 config.batch_size, "Workers", config.workers)
270 torch.cuda.set_device(config.gpu)
271 model = nn.SyncBatchNorm.convert_sync_batchnorm(model)
272 model = model.cuda(config.gpu)
273 model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[config.gpu], output_device=config.gpu,
274 find_unused_parameters=find_unused_parameters)
275
276 elif config.gpu is None:
277 # Use DP
278 config.multigpu = True
279 model = model.cuda()
280 model = torch.nn.DataParallel(model)
281
282 return model
283
284
285#################################################################################################

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected