Commit c8b343f
Fix transfer_tensors_to_cpu crash on mixed CPU/CUDA dicts
Summary: `transfer_tensors_to_cpu` selects the source device from the first CUDA tensor, but the copy loop guarded only on `isinstance(v, torch.Tensor)` and ran the device-to-host path — including `record_stream`, which is CUDA-only — on every tensor. For an input dict that mixes CPU and CUDA tensors this raised `NotImplementedError: aten::record_stream ... 'CPU' backend`. Guard the copy loop so only CUDA tensors are transferred; CPU tensors and non-tensor values pass through unchanged, matching the existing source-device selection guard.
Differential Revision: D1134220681 parent 91fa127 commit c8b343f
2 files changed
Lines changed: 29 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | | - | |
81 | | - | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
82 | 83 | | |
83 | 84 | | |
84 | 85 | | |
| |||
99 | 100 | | |
100 | 101 | | |
101 | 102 | | |
102 | | - | |
| 103 | + | |
103 | 104 | | |
104 | 105 | | |
105 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
396 | 396 | | |
397 | 397 | | |
398 | 398 | | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
399 | 424 | | |
400 | 425 | | |
401 | 426 | | |
| |||
0 commit comments