diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4d150186e6..4e7ae29eb2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -372,17 +372,12 @@ jobs: deps: testing opencl: 'true' llvm: 'true' - - name: Test openpilot model kernel count and gate usage - run: | - ALLOWED_KERNEL_COUNT=190 ALLOWED_READ_IMAGE=2081 ALLOWED_GATED_READ_IMAGE=28 CL=1 IMAGE=2 NOLOCALS=1 FLOAT16=1 python examples/openpilot/compile3.py https://github.com/commaai/openpilot/raw/v0.9.4/selfdrive/modeld/models/supercombo.onnx - name: Test openpilot CL compile fp16 - run: FLOAT16=1 DEBUGCL=1 CL=1 IMAGE=2 python examples/openpilot/compile3.py https://github.com/haraschax/filedump/raw/refs/heads/master/driving_vision.onnx - - name: Test openpilot CL compile fp32 + run: FLOAT16=1 DEBUGCL=1 CL=1 IMAGE=2 python examples/openpilot/compile3.py https://gitlab.com/commaai/openpilot-lfs.git/gitlab-lfs/objects/cf6376aa9a090f0da26c280ef69eabf9bbdd51d1faac9ed392919c3db69be916 + - name: Test openpilot CL compile fp32 (test correctness) run: DEBUGCL=1 CL=1 IMAGE=2 python examples/openpilot/compile3.py https://github.com/haraschax/filedump/raw/refs/heads/master/driving_vision_fp32.onnx - name: Test openpilot LLVM compile fp16 - run: CPU=1 CPU_LLVM=1 FLOAT16=1 python examples/openpilot/compile3.py https://github.com/haraschax/filedump/raw/refs/heads/master/driving_vision.onnx - - name: Test openpilot LLVM compile fp32 - run: CPU=1 CPU_LLVM=1 python examples/openpilot/compile3.py https://github.com/haraschax/filedump/raw/refs/heads/master/driving_vision_fp32.onnx + run: FLOAT16=1 CPU=1 CPU_LLVM=1 python examples/openpilot/compile3.py https://gitlab.com/commaai/openpilot-lfs.git/gitlab-lfs/objects/cf6376aa9a090f0da26c280ef69eabf9bbdd51d1faac9ed392919c3db69be916 - name: Run process replay tests uses: ./.github/actions/process-replay diff --git a/examples/openpilot/compile3.py b/examples/openpilot/compile3.py index 87650f4619..915583e725 100644 --- a/examples/openpilot/compile3.py +++ b/examples/openpilot/compile3.py @@ -52,12 +52,6 @@ def compile(onnx_file): for v in [m.group(1) for m in re.finditer(r'(val\d+)\s*=\s*read_imagef\(', ei.prg.p.src)]: if len(re.findall(fr'[\?\:]{v}\.[xyzw]', ei.prg.p.src)) > 0: gated_read_image_count += 1 print(f"{kernel_count=}, {read_image_count=}, {gated_read_image_count=}") - if (allowed_kernel_count:=getenv("ALLOWED_KERNEL_COUNT", -1)) != -1: - assert kernel_count == allowed_kernel_count, f"different kernels! {kernel_count=}, {allowed_kernel_count=}" - if (allowed_read_image:=getenv("ALLOWED_READ_IMAGE", -1)) != -1: - assert read_image_count == allowed_read_image, f"different read_image! {read_image_count=}, {allowed_read_image=}" - if (allowed_gated_read_image:=getenv("ALLOWED_GATED_READ_IMAGE", -1)) != -1: - assert gated_read_image_count == allowed_gated_read_image, f"different gated read_image! {gated_read_image_count=}, {allowed_gated_read_image=}" with open(OUTPUT, "wb") as f: pickle.dump(run_onnx_jit, f) @@ -104,8 +98,6 @@ def test_vs_onnx(new_inputs, test_val, onnx_file, tol): ORT_TO_NP_DTYPES: dict[str, np.dtype] = { 'tensor(float)': np.dtype('float32'), 'tensor(float16)': np.dtype('float16'), - 'tensor(int64)': np.dtype('int64'), - 'tensor(int32)': np.dtype('int32'), 'tensor(uint8)': np.dtype('uint8'), } @@ -130,7 +122,7 @@ if __name__ == "__main__": with open(OUTPUT, "rb") as f: pickle_loaded = pickle.load(f) test_vs_compile(pickle_loaded, inputs, outputs) - if not getenv("NO_ORT_TEST"): + if not getenv("NO_ORT"): tol = 1 if getenv("FLOAT16") else 1e-4 # This tolerance is absurd, but better than nothing test_vs_onnx(inputs, outputs, onnx_file, tol)