(data, group)
| 273 | |
| 274 | |
| 275 | def _serialize_to_tensor(data, group): |
| 276 | backend = dist.get_backend(group) |
| 277 | assert backend in ['gloo', 'nccl'] |
| 278 | device = torch.device('cpu' if backend == 'gloo' else 'cuda') |
| 279 | |
| 280 | buffer = pickle.dumps(data) |
| 281 | if len(buffer) > 1024**3: |
| 282 | logger.warning( |
| 283 | 'Rank {} trying to all-gather {:.2f} GB of data on device {}'. |
| 284 | format(get_rank(), |
| 285 | len(buffer) / (1024**3), device)) |
| 286 | storage = torch.ByteStorage.from_buffer(buffer) |
| 287 | tensor = torch.ByteTensor(storage).to(device=device) |
| 288 | return tensor |
| 289 | |
| 290 | |
| 291 | def _pad_to_largest_tensor(tensor, group): |
no test coverage detected
searching dependent graphs…