// size_t smpb; // max. shared memory per block
bool vmm; // virtual memory support
size_t total_vram;
- sycl_hw_info hw_info;
+ //sycl_hw_info hw_info; \\ device id and aarch, currently not used
optimize_feature opt_feature;
};
void release_extra_gpu(ggml_tensor_extra_gpu * extra, std::vector<queue_ptr> streams={});
-inline optimize_feature check_gpu_optimize_feature(syclex::architecture &arch) {
- optimize_feature opt;
-
- opt.reorder =
- (arch == syclex::architecture::intel_gpu_dg1 ||
- arch == syclex::architecture::intel_gpu_acm_g10 ||
- arch == syclex::architecture::intel_gpu_acm_g11 ||
- arch == syclex::architecture::intel_gpu_acm_g12 ||
- arch == syclex::architecture::intel_gpu_pvc ||
- arch == syclex::architecture::intel_gpu_pvc_vg ||
- arch == syclex::architecture::intel_gpu_mtl_u ||
- arch == syclex::architecture::intel_gpu_mtl_s ||
- arch == syclex::architecture::intel_gpu_mtl_h ||
- arch == syclex::architecture::intel_gpu_arl_u ||
- arch == syclex::architecture::intel_gpu_arl_s ||
- arch == syclex::architecture::intel_gpu_arl_h ||
- arch == syclex::architecture::intel_gpu_bmg_g21 ||
- arch == syclex::architecture::intel_gpu_lnl_m
- );
-
- return opt;
-}
-
namespace sycl_ex = sycl::ext::oneapi::experimental;
struct ggml_backend_sycl_context {
int device;
info.devices[i].cc =
100 * prop.get_major_version() + 10 * prop.get_minor_version();
- info.devices[i].hw_info = get_device_hw_info(&device);
- info.devices[i].opt_feature = check_gpu_optimize_feature(info.devices[i].hw_info.arch);
-
+ info.devices[i].opt_feature.reorder = !device.ext_oneapi_architecture_is(syclex::arch_category::intel_gpu);
info.max_work_group_sizes[i] = prop.get_max_work_group_size();
}
if (!initialized) {
g_ggml_sycl_debug = get_sycl_env("GGML_SYCL_DEBUG", 0);
- g_ggml_sycl_disable_optimize= get_sycl_env("GGML_SYCL_DISABLE_OPT", 1);
+ g_ggml_sycl_disable_optimize = get_sycl_env("GGML_SYCL_DISABLE_OPT", 0);
g_ggml_sycl_disable_graph = get_sycl_env("GGML_SYCL_DISABLE_GRAPH", 1);
g_ggml_sycl_disable_dnn = get_sycl_env("GGML_SYCL_DISABLE_DNN", 0);
g_ggml_sycl_prioritize_dmmv = get_sycl_env("GGML_SYCL_PRIORITIZE_DMMV", 0);
namespace syclex = sycl::ext::oneapi::experimental;
+// TODO: currently not used
+/*
struct sycl_hw_info {
syclex::architecture arch;
int32_t device_id;
bool is_in_vector(std::vector<int> &vec, int item);
sycl_hw_info get_device_hw_info(sycl::device *device_ptr);
+*/
#endif // SYCL_HW_HPP