Skip to content

Commit da80670

Browse files
committed
[GPU] Add option to limit number of GRFs per thread in L0 RT
1 parent 290d88b commit da80670

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

src/plugins/intel_gpu/src/runtime/ze/ze_kernel_builder.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ void ze_kernel_builder::init_ocl_builder() const {
3232
m_ocl_builder = std::make_shared<ocl_kernel_builder>(*m_ocl_device);
3333
}
3434

35-
bool ze_kernel_builder::check_l0_build_support() const {
35+
bool ze_kernel_builder::check_l0_build_support(const std::string& options) const {
3636
static std::unordered_map<ze_device_handle_t, bool> cache;
3737
static std::mutex m;
3838
// Prevent multiple threads from checking support at the same time
@@ -44,7 +44,7 @@ bool ze_kernel_builder::check_l0_build_support() const {
4444
return cache.at(dev_handle);
4545
}
4646
try {
47-
build_module_l0(src, src_bytes, KernelFormat::SOURCE, "");
47+
build_module_l0(src, src_bytes, KernelFormat::SOURCE, options);
4848
cache[dev_handle] = true;
4949
} catch (std::exception&) {
5050
GPU_DEBUG_INFO << "[GPU] Device(" << dev_handle << ") does not support kernel compilation from source through L0" << std::endl;
@@ -115,7 +115,12 @@ void ze_kernel_builder::build_kernels(const void *src, size_t src_bytes, KernelF
115115
}
116116
module_holder = build_module_ocl(src, src_bytes, src_format, options);
117117
} else {
118-
module_holder = build_module_l0(src, src_bytes, src_format, options);
118+
if ((check_l0_build_support("-ze-exp-register-file-size 128"))
119+
&& (options.find("-ze-exp-register-file-size 128") == std::string::npos)) {
120+
module_holder = build_module_l0(src, src_bytes, src_format, options + " -ze-exp-register-file-size 128");
121+
} else {
122+
module_holder = build_module_l0(src, src_bytes, src_format, options);
123+
}
119124
}
120125
ze_kernel::create_kernels_from_module(module_holder, out);
121126
}

src/plugins/intel_gpu/src/runtime/ze/ze_kernel_builder.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ze_kernel_builder : public kernel_builder{
2626

2727
private:
2828
/// @brief Check if L0 can build kernels from source
29-
bool check_l0_build_support() const;
29+
bool check_l0_build_support(const std::string& options = "") const;
3030
/// @brief Build module through L0 API
3131
std::shared_ptr<ze_module_holder> build_module_l0(const void *src, size_t src_bytes, KernelFormat src_format, const std::string &options) const;
3232
/// @brief Build module through OCL API and repackage to L0 module

0 commit comments

Comments
 (0)