@@ -1125,7 +1125,7 @@ static int repack_iq4_nl_to_iq4_nl_4_bl(struct ggml_tensor * t, int interleave_b
1125
1125
GGML_UNUSED (data_size);
1126
1126
}
1127
1127
1128
- namespace ggml ::cpu::aarch64 {
1128
+ namespace ggml ::cpu::repack {
1129
1129
// repack
1130
1130
template <typename BLOC_TYPE, int64_t INTER_SIZE, int64_t NB_COLS>
1131
1131
int repack (struct ggml_tensor *, const void *, size_t );
@@ -1445,7 +1445,7 @@ template <typename BLOC_TYPE, int64_t INTER_SIZE, int64_t NB_COLS, ggml_type PAR
1445
1445
int repack (struct ggml_tensor * t, const void * data, size_t data_size) override {
1446
1446
GGML_LOG_DEBUG (" %s: repack tensor %s with %s_%dx%d\n " , __func__, t->name , ggml_type_name (t->type ),
1447
1447
(int ) NB_COLS, (int ) INTER_SIZE);
1448
- return ggml::cpu::aarch64 ::repack<BLOC_TYPE, INTER_SIZE, NB_COLS>(t, data, data_size);
1448
+ return ggml::cpu::repack ::repack<BLOC_TYPE, INTER_SIZE, NB_COLS>(t, data, data_size);
1449
1449
}
1450
1450
};
1451
1451
@@ -1458,35 +1458,35 @@ static const tensor_traits<block_q4_K, 8, 8, GGML_TYPE_Q8_K> q4_K_8x8_q8_K;
1458
1458
// instance for IQ4
1459
1459
static const tensor_traits<block_iq4_nl, 4 , 4 , GGML_TYPE_Q8_0> iq4_nl_4x4_q8_0;
1460
1460
1461
- } // namespace ggml::cpu::aarch64
1461
+ } // namespace ggml::cpu::repack
1462
1462
1463
1463
static const ggml::cpu::tensor_traits * ggml_aarch64_get_optimal_repack_type (const struct ggml_tensor * cur) {
1464
1464
if (cur->type == GGML_TYPE_Q4_0) {
1465
1465
if (ggml_cpu_has_avx2 () || (ggml_cpu_has_sve () && ggml_cpu_has_matmul_int8 () && ggml_cpu_get_sve_cnt () == QK8_0)) {
1466
1466
if (cur->ne [1 ] % 8 == 0 ) {
1467
- return &ggml::cpu::aarch64 ::q4_0_8x8_q8_0;
1467
+ return &ggml::cpu::repack ::q4_0_8x8_q8_0;
1468
1468
}
1469
1469
}
1470
1470
if (ggml_cpu_has_neon () && ggml_cpu_has_matmul_int8 ()) {
1471
1471
if (cur->ne [1 ] % 4 == 0 ) {
1472
- return &ggml::cpu::aarch64 ::q4_0_4x8_q8_0;
1472
+ return &ggml::cpu::repack ::q4_0_4x8_q8_0;
1473
1473
}
1474
1474
}
1475
1475
if (ggml_cpu_has_neon () && ggml_cpu_has_dotprod ()) {
1476
1476
if (cur->ne [1 ] % 4 == 0 ) {
1477
- return &ggml::cpu::aarch64 ::q4_0_4x4_q8_0;
1477
+ return &ggml::cpu::repack ::q4_0_4x4_q8_0;
1478
1478
}
1479
1479
}
1480
1480
} else if (cur->type == GGML_TYPE_Q4_K) {
1481
1481
if (ggml_cpu_has_avx2 ()) {
1482
1482
if (cur->ne [1 ] % 8 == 0 ) {
1483
- return &ggml::cpu::aarch64 ::q4_K_8x8_q8_K;
1483
+ return &ggml::cpu::repack ::q4_K_8x8_q8_K;
1484
1484
}
1485
1485
}
1486
1486
} else if (cur->type == GGML_TYPE_IQ4_NL) {
1487
1487
if (ggml_cpu_has_neon () && ggml_cpu_has_dotprod ()) {
1488
1488
if (cur->ne [1 ] % 4 == 0 ) {
1489
- return &ggml::cpu::aarch64 ::iq4_nl_4x4_q8_0;
1489
+ return &ggml::cpu::repack ::iq4_nl_4x4_q8_0;
1490
1490
}
1491
1491
}
1492
1492
}
@@ -1506,7 +1506,7 @@ static void ggml_backend_cpu_aarch64_buffer_set_tensor(ggml_backend_buffer_t buf
1506
1506
GGML_ASSERT (offset == 0 );
1507
1507
GGML_ASSERT (size == ggml_nbytes (tensor));
1508
1508
1509
- auto tensor_traits = (ggml::cpu::aarch64 ::tensor_traits_base *) tensor->extra ;
1509
+ auto tensor_traits = (ggml::cpu::repack ::tensor_traits_base *) tensor->extra ;
1510
1510
auto OK = tensor_traits->repack (tensor, data, size);
1511
1511
1512
1512
GGML_ASSERT (OK == 0 );
@@ -1540,7 +1540,7 @@ static size_t ggml_backend_cpu_aarch64_buffer_type_get_alignment(ggml_backend_bu
1540
1540
GGML_UNUSED (buft);
1541
1541
}
1542
1542
1543
- namespace ggml ::cpu::aarch64 {
1543
+ namespace ggml ::cpu::repack {
1544
1544
class extra_buffer_type : ggml::cpu::extra_buffer_type {
1545
1545
bool supports_op (ggml_backend_dev_t , const struct ggml_tensor * op) override {
1546
1546
if ( op->op == GGML_OP_MUL_MAT &&
@@ -1587,7 +1587,7 @@ class extra_buffer_type : ggml::cpu::extra_buffer_type {
1587
1587
return nullptr ;
1588
1588
}
1589
1589
};
1590
- } // namespace ggml::cpu::aarch64
1590
+ } // namespace ggml::cpu::repack
1591
1591
1592
1592
ggml_backend_buffer_type_t ggml_backend_cpu_aarch64_buffer_type (void ) {
1593
1593
static struct ggml_backend_buffer_type ggml_backend_cpu_buffer_type_aarch64 = {
@@ -1600,7 +1600,7 @@ ggml_backend_buffer_type_t ggml_backend_cpu_aarch64_buffer_type(void) {
1600
1600
/* .is_host = */ nullptr ,
1601
1601
},
1602
1602
/* .device = */ ggml_backend_reg_dev_get (ggml_backend_cpu_reg (), 0 ),
1603
- /* .context = */ new ggml::cpu::aarch64 ::extra_buffer_type (),
1603
+ /* .context = */ new ggml::cpu::repack ::extra_buffer_type (),
1604
1604
};
1605
1605
1606
1606
return &ggml_backend_cpu_buffer_type_aarch64;
0 commit comments