Skip to content

Commit

Permalink
[lang] Warn about non-contiguous gradient tensors (#8450)
Browse files Browse the repository at this point in the history
Fixes: #8443

### Brief Summary

copilot:summary

### Walkthrough

copilot:walkthrough

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
bobcao3 and pre-commit-ci[bot] committed Dec 27, 2023
1 parent fc1b05a commit 6a30b8d
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions python/taichi/lang/kernel_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,16 @@ def call_back():
if v.requires_grad and v.grad is None:
v.grad = torch.zeros_like(v)

if v.requires_grad:
if not isinstance(v.grad, torch.Tensor):
raise ValueError(
f"Expecting torch.Tensor for gradient tensor, but getting {v.grad.__class__.__name__} instead"
)
if not v.grad.is_contiguous():
raise ValueError(
"Non contiguous gradient tensors are not supported, please call tensor.grad.contiguous() before passing it into taichi kernel."
)

tmp = v
if (str(v.device) != "cpu") and not (
str(v.device).startswith("cuda") and taichi_arch == _ti_core.Arch.cuda
Expand Down

0 comments on commit 6a30b8d

Please sign in to comment.