Skip to content

Commit

Permalink
rename device_infos to infos
Browse files Browse the repository at this point in the history
  • Loading branch information
arthw committed Aug 1, 2024
1 parent 6211ac0 commit 254a750
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 44 deletions.
16 changes: 8 additions & 8 deletions ggml/src/ggml-sycl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2280,11 +2280,11 @@ static int64_t get_row_rounding(ggml_type type, const std::array<float, GGML_SYC
for (int i = 0; i < ggml_sycl_info().device_count; ++i) {
int id = ggml_backend_sycl_get_device_id(i);
if (tensor_split[i] < (i + 1 < ggml_sycl_info().device_count ? tensor_split[i + 1] : 1.0f)) {
if (min_compute_capability > ggml_sycl_info().device_infos[id].cc) {
min_compute_capability = ggml_sycl_info().device_infos[id].cc;
if (min_compute_capability > ggml_sycl_info().infos[id].cc) {
min_compute_capability = ggml_sycl_info().infos[id].cc;
}
if (max_compute_capability < ggml_sycl_info().device_infos[id].cc) {
max_compute_capability = ggml_sycl_info().device_infos[id].cc;
if (max_compute_capability < ggml_sycl_info().infos[id].cc) {
max_compute_capability = ggml_sycl_info().infos[id].cc;
}
}
}
Expand Down Expand Up @@ -3416,12 +3416,12 @@ static void ggml_sycl_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor
continue;
}

if (min_compute_capability > ggml_sycl_info().device_infos[id].cc) {
min_compute_capability = ggml_sycl_info().device_infos[id].cc;
if (min_compute_capability > ggml_sycl_info().infos[id].cc) {
min_compute_capability = ggml_sycl_info().infos[id].cc;
}
}
} else {
min_compute_capability = ggml_sycl_info().device_infos[ctx.device].cc;
min_compute_capability = ggml_sycl_info().infos[ctx.device].cc;
}

// check data types and tensor shapes for custom matrix multiplication kernels:
Expand Down Expand Up @@ -4342,7 +4342,7 @@ ggml_backend_buffer_type_t ggml_backend_sycl_buffer_type(int device_id) {
if (!ggml_backend_sycl_buffer_type_initialized) {
for (auto & id: ggml_sycl_info().ids) {
auto & device = dpct::dev_mgr::instance().get_device(id);
queue_ptr stream = ggml_sycl_info().device_infos[id].qptrs[0];
queue_ptr stream = ggml_sycl_info().infos[id].qptrs[0];
ggml_backend_sycl_buffer_types[id] = {
/* .iface = */ ggml_backend_sycl_buffer_type_interface,
/* .context = */ new ggml_backend_sycl_buffer_type_context{id, GGML_SYCL_NAME + std::to_string(id), stream},
Expand Down
2 changes: 1 addition & 1 deletion ggml/src/ggml-sycl/common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ struct ggml_backend_sycl_context {
device(id),
name(GGML_SYCL_NAME + std::to_string(device)) {
for (int i=0;i<GGML_SYCL_MAX_STREAMS; i++){
qptrs[id][i] = sycl_device_info.device_infos[id].qptrs[i];
qptrs[id][i] = sycl_device_info.infos[id].qptrs[i];
}
}

Expand Down
20 changes: 10 additions & 10 deletions ggml/src/ggml-sycl/mmq.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1779,7 +1779,7 @@ static void ggml_mul_mat_q4_0_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -1894,7 +1894,7 @@ static void ggml_mul_mat_q4_1_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2009,7 +2009,7 @@ static void ggml_mul_mat_q5_0_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2124,7 +2124,7 @@ static void ggml_mul_mat_q5_1_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2239,7 +2239,7 @@ static void ggml_mul_mat_q8_0_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2354,7 +2354,7 @@ static void ggml_mul_mat_q2_K_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2477,7 +2477,7 @@ static void ggml_mul_mat_q3_K_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2605,7 +2605,7 @@ static void ggml_mul_mat_q4_K_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2726,7 +2726,7 @@ static void ggml_mul_mat_q5_K_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down Expand Up @@ -2847,7 +2847,7 @@ static void ggml_mul_mat_q6_K_q8_1_sycl(const void *vx, const void *vy,
int id;
SYCL_CHECK(
CHECK_TRY_ERROR(id = get_current_device_id()));
const int compute_capability = ggml_sycl_info().device_infos[id].cc;
const int compute_capability = ggml_sycl_info().infos[id].cc;

int mmq_x, mmq_y, nwarps;
if (compute_capability >= VER_GEN13) {
Expand Down
43 changes: 20 additions & 23 deletions ggml/src/ggml-sycl/sycl_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,15 @@ void ggml_sycl_device_info::init(
m_device_filter = device_filter;
}

void ggml_sycl_device_info::clear_device_infos() {
void ggml_sycl_device_info::clear_infos() {
ids.clear();
devices.clear();

for (int id=0;id<GGML_SYCL_MAX_DEVICES;id++) {
device_infos[id].id = -1;
device_infos[id].max_work_group_sizes = 0;
device_infos[id].max_compute_units = 0;
device_infos[id].hw_family = -1;
// for (int i=0; i<GGML_SYCL_MAX_STREAMS;i++) {
// free(device_infos[id].qptrs[i]);
// }
infos[id].id = -1;
infos[id].max_work_group_sizes = 0;
infos[id].max_compute_units = 0;
infos[id].hw_family = -1;
}

device_count = 0;
Expand All @@ -43,7 +40,7 @@ void ggml_sycl_device_info::clear_device_infos() {
void ggml_sycl_device_info::init_single_mode(int main_gpu_id) {
GGML_ASSERT(main_gpu_id<dpct::dev_mgr::instance().device_count());

clear_device_infos();
clear_infos();
add_device_info(main_gpu_id);
init_devices_dynamic_info();
device_mode = SYCL_SINGLE_GPU_MODE;
Expand Down Expand Up @@ -217,23 +214,23 @@ void ggml_sycl_device_info::add_device_info(int id) {
ids.push_back(id);
devices.push_back(device);

device_infos[id].id = id;
device_infos[id].device = device;
device_infos[id].max_work_group_sizes = prop.get_max_work_group_size();
device_infos[id].max_compute_units = prop.get_max_compute_units();
device_infos[id].hw_family = get_device_family(&device);
infos[id].id = id;
infos[id].device = device;
infos[id].max_work_group_sizes = prop.get_max_work_group_size();
infos[id].max_compute_units = prop.get_max_compute_units();
infos[id].hw_family = get_device_family(&device);
}

void ggml_sycl_device_info::create_queues(int id) {
for (int i=0; i<GGML_SYCL_MAX_STREAMS;i++) {
device_infos[id].qptrs[i] = create_queue_for_device_id(id);
infos[id].qptrs[i] = create_queue_for_device_id(id);
}
}

void ggml_sycl_device_info::create_queues_for_devices() {
for (auto &id: ids) {
for (int i=0; i<GGML_SYCL_MAX_STREAMS;i++) {
device_infos[id].qptrs[i] = create_queue_for_device_id(id);
infos[id].qptrs[i] = create_queue_for_device_id(id);
}
}
}
Expand All @@ -259,28 +256,28 @@ void ggml_sycl_device_info::print_gpu_device_list() {
"units:%d, to use any SYCL devices, set/export "
"GGML_SYCL_VISIBLE_DEVICES or ONEAPI_DEVICE_SELECTOR\n";
fprintf(stderr, hint, get_device_count(), devices_list(),
device_infos[0].max_compute_units);
infos[0].max_compute_units);
}
}

int ggml_sycl_device_info::work_group_size(int id) {
GGML_ASSERT(is_allowed_device(id));
return device_infos[id].max_work_group_sizes;
return infos[id].max_work_group_sizes;
}

void ggml_sycl_device_info::update_mem() {

for (int i = 0; i < GGML_SYCL_MAX_DEVICES; ++i) {
device_infos[i].vmm = 0;
infos[i].vmm = 0;
default_tensor_split[i] = 0;
device_infos[i].cc =0;
infos[i].cc =0;
}

int64_t total_vram = 0;

for (int i = 0; i < device_count; ++i) {
int id = get_device_id(i);
device_infos[id].vmm = 0;
infos[id].vmm = 0;
dpct::device_info prop;
dpct::get_device_info(
prop, dpct::dev_mgr::instance().get_device(id));
Expand All @@ -289,7 +286,7 @@ void ggml_sycl_device_info::update_mem() {
default_tensor_split[i] = total_vram;
total_vram += prop.get_global_mem_size();

device_infos[id].cc =
infos[id].cc =
100 * prop.get_major_version() + 10 * prop.get_minor_version();
}

Expand Down Expand Up @@ -335,7 +332,7 @@ int ggml_sycl_device_info::get_device_id(int device_index) {
}

int ggml_sycl_device_info::hw_family(int id) {
return device_infos[id].hw_family;
return infos[id].hw_family;
}

static inline bool env_existed(const char *env_name) {
Expand Down
4 changes: 2 additions & 2 deletions ggml/src/ggml-sycl/sycl_device.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ struct ggml_sycl_device_info {
sycl::context co_ctx;
int m_device_filter;

sycl_device_info device_infos[GGML_SYCL_MAX_DEVICES];
sycl_device_info infos[GGML_SYCL_MAX_DEVICES];
std::array<float, GGML_SYCL_MAX_DEVICES> default_tensor_split = {};

ggml_sycl_device_info(int main_gpu_id);//single device mode

void init(ggml_sycl_backend_device_filter device_filter);
void init_single_mode(int main_gpu_id);

void clear_device_infos();
void clear_infos();
void print_gpu_device_list();
int work_group_size(int device_id);
bool is_allowed_device(int device_id);
Expand Down

0 comments on commit 254a750

Please sign in to comment.