Commit 8f1def8
committed
dsl: Look a DimensionTuple up by the Dimension asked for
`__getitem_hook__` matched on `_defines` overlap alone. A derived Dimension
carries its parent in `_defines`, so for a Bundle indexed by
`(p_rec, rp_recx)` -- `rp_recx` being a `CustomDimension` whose parent is
`p_rec` -- the lookup for `rp_recx` matched the `p_rec` entry first and
returned the number of sparse points where the number of interpolation
weights was meant.
That size becomes the innermost stride in `_generate_fsz`, so the receiver
kernels of a vectorized Operator read `w[p*npoint + rp]` instead of
`w[p*2 + rp]` and run off the end of the array. Observed as an out-of-bounds
`__global__` read under compute-sanitizer and a run-to-run varying, sometimes
NaN, elastic TTI gradient on CUDA.
Try an exact hit before falling back to the overlap, in both
`__getitem_hook__` and `dindex`.1 parent 4109b58 commit 8f1def8
2 files changed
Lines changed: 35 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
48 | 55 | | |
49 | 56 | | |
50 | 57 | | |
51 | 58 | | |
52 | 59 | | |
53 | 60 | | |
| 61 | + | |
| 62 | + | |
54 | 63 | | |
55 | 64 | | |
56 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
716 | 716 | | |
717 | 717 | | |
718 | 718 | | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
0 commit comments