From e599d2323d6feb362a4a40527d12580114b5b33d Mon Sep 17 00:00:00 2001 From: Anatoly Myachev Date: Fri, 22 Nov 2024 21:45:44 +0000 Subject: [PATCH] Fix 'test_scan_layouts[True-1-src_layout10-64-32]' on LTS driver; ignoring loadBinary error with large registers Signed-off-by: Anatoly Myachev --- scripts/skiplist/lts/language.txt | 2 -- third_party/intel/backend/driver.c | 22 +++++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/scripts/skiplist/lts/language.txt b/scripts/skiplist/lts/language.txt index a652a92cf5..d882ea0f31 100644 --- a/scripts/skiplist/lts/language.txt +++ b/scripts/skiplist/lts/language.txt @@ -113,8 +113,6 @@ test/unit/language/test_core.py::test_dot_max_num_imprecise_acc[64-float8e5-128- test/unit/language/test_core.py::test_dot_max_num_imprecise_acc[64-float8e4nv-128-256-128-128-256-256] test/unit/language/test_core.py::test_dot_max_num_imprecise_acc[64-float8e4b15-128-256-128-128-256-256] test/unit/language/test_core.py::test_dot_max_num_imprecise_acc[128-float8e5-128-256-128-128-256-256] -# https://github.com/intel/intel-xpu-backend-for-triton/issues/2662 -test/unit/language/test_core.py::test_scan_layouts[True-1-src_layout10-64-32] # https://github.com/intel/intel-xpu-backend-for-triton/issues/2703 test/unit/language/test_core.py::test_chained_reductions[in_shape0-perm0-red_dims0] test/unit/language/test_core.py::test_dot3d[1-1-32-32-32-32-32-float16-float16] diff --git a/third_party/intel/backend/driver.c b/third_party/intel/backend/driver.c index 295af3e3fe..6801261fdb 100644 --- a/third_party/intel/backend/driver.c +++ b/third_party/intel/backend/driver.c @@ -244,13 +244,21 @@ static PyObject *loadBinary(PyObject *self, PyObject *args) { build_flags.addLargeGRFSizeFlag(); - auto [l0_module, l0_kernel, n_spills] = compileLevelZeroObjects( - binary_ptr, binary_size, kernel_name, l0_device, l0_context, - build_flags(), is_spv); - - if (debugEnabled) - std::cout << "(I): Kernel has now " << n_spills << " spills" - << std::endl; + try { + auto [l0_module, l0_kernel, n_spills] = compileLevelZeroObjects( + binary_ptr, binary_size, kernel_name, l0_device, l0_context, + build_flags(), is_spv); + + if (debugEnabled) + std::cout << "(I): Kernel has now " << n_spills << " spills" + << std::endl; + } catch (const std::exception &e) { + std::cerr << "[Ignoring] Error during Intel loadBinary with large " + "registers: " + << e.what() << std::endl; + // construct previous working version + build_flags = BuildFlags(build_flags_ptr); + } } }