skip some PTX IGNORE_OOB validation (#13927)

This commit is contained in:
chenyu
2025-12-31 12:40:21 -05:00
committed by GitHub
parent 4968060ad4
commit ba9aa5cd6f
2 changed files with 5 additions and 1 deletions

View File

@@ -822,6 +822,7 @@ jobs:
NV_PTX: 1
NV: 1
FORWARD_ONLY: 1
IGNORE_OOB: 0
run: |
python3 -m pytest -n=auto test/device/test_hcq.py test/test_tiny.py --durations=20
- name: Run process replay tests

View File

@@ -1,6 +1,6 @@
from typing import Callable, cast
from tinygrad.uop.ops import PatternMatcher, UPat, GroupOp, Ops, UOp, python_alu
from tinygrad.dtype import ImageDType, dtypes, Invalid
from tinygrad.dtype import ImageDType, dtypes, Invalid, PtrDType
from tinygrad.helpers import IGNORE_OOB, cpu_profile
try:
@@ -70,6 +70,9 @@ def validate_index(buf:UOp, idx:UOp, gate:UOp|None=None):
# WEBGPU has a BITCAST in the index. TODO: fix
if any(x.op is Ops.BITCAST for x in idx.toposort() | gate.toposort()): return True
# PTX uses absolute addresses (pointer cast to long), skip validation
if any(x.op is Ops.CAST and isinstance(x.src[0].dtype, PtrDType) for x in idx.toposort()): return True
if not z3_imported: raise ImportError("bounds checking requires z3 >= 4.12.4, use IGNORE_OOB=1 to disable, or \"pip install 'z3-solver>=4.12.4\"")
solver = z3.Solver(ctx=z3.Context())
z3_idx, z3_mask = uops_to_z3(solver, idx, gate)