From 4aa6e7e24db177760d574e641bc054826767b333 Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 3 Dec 2024 09:02:08 +0000 Subject: [PATCH] xtheadvector packing --- src/net.cpp | 6 +++--- tests/testutil.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 750f1252f39..40fea36a03c 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -695,7 +695,7 @@ int NetPrivate::convert_layout(Mat& bottom_blob, const Layer* layer, const Optio dst_elempack = 8; else if (elemcount % 4 == 0) dst_elempack = 4; -#elif NCNN_RVV +#elif NCNN_RVV || NCNN_XTHEADVECTOR const int packn = ncnn::cpu_riscv_vlenb() / 4; if (elemcount % packn == 0) dst_elempack = packn; @@ -711,7 +711,7 @@ int NetPrivate::convert_layout(Mat& bottom_blob, const Layer* layer, const Optio dst_elempack = 8; else if (elemcount % 4 == 0) dst_elempack = 4; -#elif NCNN_RVV +#elif NCNN_RVV || NCNN_XTHEADVECTOR const int packn = ncnn::cpu_riscv_vlenb() / 2; if (elemcount % packn == 0) dst_elempack = packn; @@ -722,7 +722,7 @@ int NetPrivate::convert_layout(Mat& bottom_blob, const Layer* layer, const Optio } if (elembits == 8) { -#if NCNN_RVV +#if NCNN_RVV || NCNN_XTHEADVECTOR const int packn = ncnn::cpu_riscv_vlenb() / 1; if (elemcount % packn == 0) dst_elempack = packn; diff --git a/tests/testutil.cpp b/tests/testutil.cpp index 7316ace9646..3cf3e605e3b 100644 --- a/tests/testutil.cpp +++ b/tests/testutil.cpp @@ -394,8 +394,8 @@ static int convert_to_optimal_layout(const ncnn::Mat& a, ncnn::Mat& a4, const nc dst_elempack = 8; else if (elemcount % 4 == 0) dst_elempack = 4; -#elif NCNN_RVV - const int packn = ncnn::cpu_riscv_vlenb() / (elembits / 8); +#elif NCNN_RVV || NCNN_XTHEADVECTOR + const int packn = ncnn::cpu_riscv_vlenb() / 4; if (elemcount % packn == 0) dst_elempack = packn; #else @@ -410,7 +410,7 @@ static int convert_to_optimal_layout(const ncnn::Mat& a, ncnn::Mat& a4, const nc dst_elempack = 8; else if (elemcount % 4 == 0) dst_elempack = 4; -#elif NCNN_RVV +#elif NCNN_RVV || NCNN_XTHEADVECTOR const int packn = ncnn::cpu_riscv_vlenb() / 2; if (elemcount % packn == 0) dst_elempack = packn; @@ -421,7 +421,7 @@ static int convert_to_optimal_layout(const ncnn::Mat& a, ncnn::Mat& a4, const nc } if (elembits == 8) { -#if NCNN_RVV +#if NCNN_RVV || NCNN_XTHEADVECTOR const int packn = ncnn::cpu_riscv_vlenb() / 1; if (elemcount % packn == 0) dst_elempack = packn;