Skip to content

Commit

Permalink
[AddVersion]fix pack bugs in pool,update toV2.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
leofang3 committed Aug 23, 2023
1 parent 9c1f0b1 commit 8e6492d
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 57 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name="pythinker",
version="2.1.0",
version="2.1.1",
description="A DeepLearning inference framework for venus",
author="listenai",
author_email="lingerthinker@listenai.com",
Expand Down
38 changes: 21 additions & 17 deletions test/auto_test.sh
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
set -e

test_dir=./model.test
function download_onnx_thinker_models()
{
set +e
dir_name=$1
file1_name=$2
file2_name=$3
file3_name=$4
mkdir -p "model/${dir_name}"
cp /data/user/thinker/models/${dir_name}/${file1_name} model/${dir_name}/${file1_name}
cp /data/user/thinker/models/${dir_name}/${file2_name} model/${dir_name}/${file2_name}
cp /data/user/thinker/models/${dir_name}/${file3_name} model/${dir_name}/${file3_name}

mkdir -p "$test_dir/${dir_name}"
cp /data/user/thinker/models/${dir_name}/${file1_name} $test_dir/${dir_name}/${file1_name}
cp /data/user/thinker/models/${dir_name}/${file2_name} $test_dir/${dir_name}/${file2_name}
cp /data/user/thinker/models/${dir_name}/${file3_name} $test_dir/${dir_name}/${file3_name}
}

#################### fetch onnx graph and config file ####################
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
# module load gcc/5.4.0-os7.2
mkdir -p model
mkdir -p resource
if [ -d "$test_dir" ]; then
rm -rf $test_dir
fi

mkdir -p $test_dir
pushd ./
download_onnx_thinker_models "test_conv1d" "conv1d.onnx" "input.bin" "output.bin"
download_onnx_thinker_models "test_conv2d" "net.onnx" "input.bin" "output.bin"
Expand Down Expand Up @@ -56,20 +59,21 @@ popd

###################### compile test.cpp ######################
pushd ./
tpacker -g model/test_conv2d/net.onnx -s Remove_QuantDequant -o model/test_conv2d/model.bin
tpacker -g model/test_conv1d/conv1d.onnx -s Remove_QuantDequant -o model/test_conv1d/model.bin
tpacker -g model/test_batchnorm/batchnormInt.onnx -s Remove_QuantDequant -o model/test_batchnorm/model.bin
tpacker -g model/test_softmaxint/softmaxint.onnx -s Remove_QuantDequant -o model/test_softmaxint/model.bin
tpacker -g model/test_logsoftmax/logsoftmaxint.onnx -s Remove_QuantDequant -o model/test_logsoftmax/model.bin
tpacker -g model/test_iqsigmoid/iqsigmoid.onnx -s Remove_QuantDequant -o model/test_iqsigmoid/model.bin
tpacker -g model/test_layernorm/layernorm_int.onnx -s Remove_QuantDequant -o model/test_layernorm/model.bin
tpacker -g model/test_shufflechannel/shuffle_net_10_09.onnx -s Remove_QuantDequant -o model/test_shufflechannel/model.bin
tpacker -g model/test_gru/gru_int.onnx -s Remove_QuantDequant -o model/test_gru/model.bin
tpacker -g $test_dir/test_conv2d/net.onnx -s Remove_QuantDequant -o $test_dir/test_conv2d/model.bin
tpacker -g $test_dir/test_conv1d/conv1d.onnx -s Remove_QuantDequant -o $test_dir/test_conv1d/model.bin
tpacker -g $test_dir/test_batchnorm/batchnormInt.onnx -s Remove_QuantDequant -o $test_dir/test_batchnorm/model.bin
tpacker -g $test_dir/test_softmaxint/softmaxint.onnx -s Remove_QuantDequant -o $test_dir/test_softmaxint/model.bin
tpacker -g $test_dir/test_logsoftmax/logsoftmaxint.onnx -s Remove_QuantDequant -o $test_dir/test_logsoftmax/model.bin
tpacker -g $test_dir/test_iqsigmoid/iqsigmoid.onnx -s Remove_QuantDequant -o $test_dir/test_iqsigmoid/model.bin
tpacker -g $test_dir/test_layernorm/layernorm_int.onnx -s Remove_QuantDequant -o $test_dir/test_layernorm/model.bin
tpacker -g $test_dir/test_shufflechannel/shuffle_net_10_09.onnx -s Remove_QuantDequant -o $test_dir/test_shufflechannel/model.bin
tpacker -g $test_dir/test_gru/gru_int.onnx -s Remove_QuantDequant -o $test_dir/test_gru/model.bin

cd test/linux_x86 && rm -rf build && rm -rf bin && mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE="Release" ../
make
popd

######################## run the engine ######################
export LD_LIBRARY_PATH=./bin/:$LD_LIBRARY_PATH
./test/linux_x86/bin/test_x86
./test/linux_x86/bin/test_x86
rm -rf $test_dir
74 changes: 37 additions & 37 deletions test/linux_x86/test_x86.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ TEST_CASE("test_conv2d","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_conv2d/model.bin", &res, &res_len);
load_bin_file("./model.test/test_conv2d/model.bin", &res, &res_len);
const char *version = tGetVersion(0);
printf("%s\n", version);
printf("thinker version:%s\n", version);

auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
Expand Down Expand Up @@ -51,9 +51,9 @@ TEST_CASE("test_conv2d","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_conv2d/model.bin", &res, &res_len);
load_bin_file("./model/test_conv2d/input.bin", &input_data, &input_size);
load_bin_file("./model/test_conv2d/output.bin", &result, &result_size);
load_bin_file("./model.test/test_conv2d/model.bin", &res, &res_len);
load_bin_file("./model.test/test_conv2d/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_conv2d/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -135,7 +135,7 @@ TEST_CASE("test_conv1d","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_conv1d/model.bin", &res, &res_len);
load_bin_file("./model.test/test_conv1d/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -176,9 +176,9 @@ TEST_CASE("test_conv1d","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_conv1d/model.bin", &res, &res_len);
load_bin_file("./model/test_conv1d/input.bin", &input_data, &input_size);
load_bin_file("./model/test_conv1d/output.bin", &result, &result_size);
load_bin_file("./model.test/test_conv1d/model.bin", &res, &res_len);
load_bin_file("./model.test/test_conv1d/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_conv1d/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -259,7 +259,7 @@ TEST_CASE("test_batchnorm","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_batchnorm/model.bin", &res, &res_len);
load_bin_file("./model.test/test_batchnorm/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -300,9 +300,9 @@ TEST_CASE("test_batchnorm","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_batchnorm/model.bin", &res, &res_len);
load_bin_file("./model/test_batchnorm/input.bin", &input_data, &input_size);
load_bin_file("./model/test_batchnorm/output.bin", &result, &result_size);
load_bin_file("./model.test/test_batchnorm/model.bin", &res, &res_len);
load_bin_file("./model.test/test_batchnorm/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_batchnorm/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -384,7 +384,7 @@ TEST_CASE("test_softmaxint","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_softmaxint/model.bin", &res, &res_len);
load_bin_file("./model.test/test_softmaxint/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -425,9 +425,9 @@ TEST_CASE("test_softmaxint","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_softmaxint/model.bin", &res, &res_len);
load_bin_file("./model/test_softmaxint/input.bin", &input_data, &input_size);
load_bin_file("./model/test_softmaxint/output.bin", &result, &result_size);
load_bin_file("./model.test/test_softmaxint/model.bin", &res, &res_len);
load_bin_file("./model.test/test_softmaxint/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_softmaxint/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -509,7 +509,7 @@ TEST_CASE("test_logsoftmax","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_logsoftmax/model.bin", &res, &res_len);
load_bin_file("./model.test/test_logsoftmax/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -550,9 +550,9 @@ TEST_CASE("test_logsoftmax","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_logsoftmax/model.bin", &res, &res_len);
load_bin_file("./model/test_logsoftmax/input.bin", &input_data, &input_size);
load_bin_file("./model/test_logsoftmax/output.bin", &result, &result_size);
load_bin_file("./model.test/test_logsoftmax/model.bin", &res, &res_len);
load_bin_file("./model.test/test_logsoftmax/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_logsoftmax/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -634,7 +634,7 @@ TEST_CASE("test_iqsigmoid","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_iqsigmoid/model.bin", &res, &res_len);
load_bin_file("./model.test/test_iqsigmoid/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -675,9 +675,9 @@ TEST_CASE("test_iqsigmoid","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_iqsigmoid/model.bin", &res, &res_len);
load_bin_file("./model/test_iqsigmoid/input.bin", &input_data, &input_size);
load_bin_file("./model/test_iqsigmoid/output.bin", &result, &result_size);
load_bin_file("./model.test/test_iqsigmoid/model.bin", &res, &res_len);
load_bin_file("./model.test/test_iqsigmoid/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_iqsigmoid/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -759,7 +759,7 @@ TEST_CASE("test_layernorm","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_layernorm/model.bin", &res, &res_len);
load_bin_file("./model.test/test_layernorm/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -800,9 +800,9 @@ TEST_CASE("test_layernorm","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_layernorm/model.bin", &res, &res_len);
load_bin_file("./model/test_layernorm/input.bin", &input_data, &input_size);
load_bin_file("./model/test_layernorm/output.bin", &result, &result_size);
load_bin_file("./model.test/test_layernorm/model.bin", &res, &res_len);
load_bin_file("./model.test/test_layernorm/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_layernorm/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -884,7 +884,7 @@ TEST_CASE("test_shufflechannel","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_shufflechannel/model.bin", &res, &res_len);
load_bin_file("./model.test/test_shufflechannel/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -925,9 +925,9 @@ TEST_CASE("test_shufflechannel","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_shufflechannel/model.bin", &res, &res_len);
load_bin_file("./model/test_shufflechannel/input.bin", &input_data, &input_size);
load_bin_file("./model/test_shufflechannel/output.bin", &result, &result_size);
load_bin_file("./model.test/test_shufflechannel/model.bin", &res, &res_len);
load_bin_file("./model.test/test_shufflechannel/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_shufflechannel/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down Expand Up @@ -1009,7 +1009,7 @@ TEST_CASE("test_gru","[interface]")
{
int8_t *res;
uint64_t res_len = 0;
load_bin_file("./model/test_gru/model.bin", &res, &res_len);
load_bin_file("./model.test/test_gru/model.bin", &res, &res_len);
auto ret =tInitialize();
REQUIRE(ret == T_SUCCESS);
int32_t num_memory = 0;
Expand Down Expand Up @@ -1050,9 +1050,9 @@ TEST_CASE("test_gru","[interface]")
uint64_t res_len = 0;
uint64_t input_size = 0;
uint64_t result_size = 0;
load_bin_file("./model/test_gru/model.bin", &res, &res_len);
load_bin_file("./model/test_gru/input.bin", &input_data, &input_size);
load_bin_file("./model/test_gru/output.bin", &result, &result_size);
load_bin_file("./model.test/test_gru/model.bin", &res, &res_len);
load_bin_file("./model.test/test_gru/input.bin", &input_data, &input_size);
load_bin_file("./model.test/test_gru/output.bin", &result, &result_size);

tStatus ret = T_SUCCESS;
ret = tInitialize();
Expand Down
2 changes: 1 addition & 1 deletion thinker/executor/c_api/thinker_define.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#define STR(x) STR_IMP(x)
#define THINKER_VERSION_MAJOR 2
#define THINKER_VERSION_MINOR 1
#define THINKER_VERSION_PATCH 0
#define THINKER_VERSION_PATCH 1
#define THINKER_VERSION \
STR(THINKER_VERSION_MAJOR) \
"." STR(THINKER_VERSION_MINOR) "." STR(THINKER_VERSION_PATCH)
Expand Down
5 changes: 4 additions & 1 deletion thinker/resource_packer/ops/Pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,9 @@ def get_workspace(self, dev_type: DevType) -> List[Tensor]:

pads = self.attrs['pads']

ou_h = self.outputs[0].shape[2]
ou_w = self.outputs[0].shape[3]
ou_hw = ou_h * ou_w
out_size = self.outputs[0].nbytes
data_size = (
ALIGN8(kernel_c)
Expand All @@ -171,7 +174,7 @@ def get_workspace(self, dev_type: DevType) -> List[Tensor]:
* h
)
assert data_size1 <= 65536, "only support channel split"
kernel_c = 8
kernel_c = 8
if kernel_size & (kernel_size - 1):
workspace_size = kernel_c * ou_hw * 8
else:
Expand Down

0 comments on commit 8e6492d

Please sign in to comment.