!5332 remove include/thread_pool_config.h

Merge pull request !5332 from wangzhe/master
This commit is contained in:
mindspore-ci-bot 2020-08-27 19:31:13 +08:00 committed by Gitee
commit 087f73d91d
8 changed files with 45 additions and 62 deletions

View File

@ -20,7 +20,6 @@
#include <string>
#include <memory>
#include "include/ms_tensor.h"
#include "include/thread_pool_config.h"
namespace mindspore::lite {
/// \brief Allocator defined a memory pool for malloc memory and free memory dynamically.
@ -28,6 +27,13 @@ namespace mindspore::lite {
/// \note List public class and interface for reference.
class Allocator;
/// \brief CpuBindMode defined for holding bind cpu strategy argument.
typedef enum {
MID_CPU = -1, /**< bind middle cpu first */
HIGHER_CPU = 1, /**< bind higher cpu first */
NO_BIND = 0 /**< no bind */
} CpuBindMode;
/// \brief DeviceType defined for holding user's preferred backend.
typedef enum {
DT_CPU, /**< CPU device type */

View File

@ -1,35 +0,0 @@
/**
* Copyright 2020 Huawei Technologies Co., Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef MINDSPORE_LITE_INCLUDE_THREAD_POOL_CONFIG_H_
#define MINDSPORE_LITE_INCLUDE_THREAD_POOL_CONFIG_H_
/// \brief CpuBindMode defined for holding bind cpu strategy argument.
typedef enum Mode {
MID_CPU = -1, /**< bind middle cpu first */
HIGHER_CPU = 1, /**< bind higher cpu first */
NO_BIND = 0 /**< no bind */
} CpuBindMode;
/// \brief ThreadPoolId defined for specifying which thread pool to use.
typedef enum Id {
THREAD_POOL_DEFAULT = 0, /**< default thread pool id */
THREAD_POOL_SECOND = 1, /**< the second thread pool id */
THREAD_POOL_THIRD = 2, /**< the third thread pool id */
THREAD_POOL_FOURTH = 3 /**< the fourth thread pool id */
} ThreadPoolId;
#endif // LITE_MINDSPORE_LITE_INCLUDE_THREAD_POOL_CONFIG_H_

View File

@ -16,7 +16,6 @@
#include <utility>
#include "src/runtime/parallel_executor.h"
#include "include/thread_pool_config.h"
#include "src/runtime/runtime_api.h"
#define MAX_THREAD_NUM 8

View File

@ -16,7 +16,6 @@
#ifndef PREDICT_SRC_RUNTIME_RUNTIME_API_H_
#define PREDICT_SRC_RUNTIME_RUNTIME_API_H_
#include <memory>
#include "include/thread_pool_config.h"
#ifndef INTERNAL_API_DLL
#ifdef _WIN32

View File

@ -15,7 +15,6 @@
*/
#include "src/runtime/thread_pool.h"
#include "include/thread_pool_config.h"
#define _GNU_SOURCE
#include <pthread.h>
#include <stdatomic.h>
@ -75,7 +74,7 @@ typedef struct {
typedef struct ThreadPool {
ThreadList *thread_list;
int thread_num;
CpuBindMode mode;
BindMode mode;
atomic_bool is_alive;
} ThreadPool;
@ -315,7 +314,7 @@ int BindMasterThread(int thread_pool_id, bool is_bind) {
CPU_ZERO(&mask);
if (is_bind) {
unsigned int attach_id;
if (thread_pool->mode == MID_CPU) {
if (thread_pool->mode == MID_MODE) {
attach_id = cpu_cores[gHigNum + gMidNum - 1];
} else {
attach_id = cpu_cores[0];
@ -343,10 +342,10 @@ int BindSalverThreads(int thread_pool_id, bool is_bind) {
return RET_TP_ERROR;
}
cpu_set_t mask;
if (is_bind && thread_pool->mode != NO_BIND) {
if (is_bind && thread_pool->mode != NO_BIND_MODE) {
unsigned int attach_id;
for (int i = 0; i < thread_pool->thread_num - 1; ++i) {
if (thread_pool->mode == MID_CPU) {
if (thread_pool->mode == MID_MODE) {
int core_id = gHigNum + gMidNum - i - 2;
if (core_id >= 0) {
attach_id = cpu_cores[core_id];
@ -393,9 +392,9 @@ int BindSalverThreads(int thread_pool_id, bool is_bind) {
}
#endif
int BindThreads(int thread_pool_id, bool is_bind, CpuBindMode mode) {
int BindThreads(int thread_pool_id, bool is_bind, int mode) {
#ifdef BIND_CORE
if (mode == NO_BIND) {
if (mode == NO_BIND_MODE) {
return RET_TP_OK;
}
ThreadPool *thread_pool = GetInstance(thread_pool_id);
@ -605,7 +604,7 @@ int CreateNewThread(int thread_pool_id, int thread_id) {
return RET_TP_OK;
}
int ReConfigThreadPool(int thread_pool_id, int thread_num, CpuBindMode mode) {
int ReConfigThreadPool(int thread_pool_id, int thread_num, int mode) {
LOG_INFO("reconfig thread pool, thread_pool_id: %d, thread_num: %d, mode: %d", thread_pool_id, thread_num, mode);
if (thread_num <= 0 || thread_num > MAX_THREAD_NUM) {
LOG_INFO("invalid thread num: %d", thread_num);
@ -646,7 +645,7 @@ int ReConfigThreadPool(int thread_pool_id, int thread_num, CpuBindMode mode) {
return BindThreads(thread_pool_id, true, mode);
}
int CreateThreadPool(int thread_pool_id, int thread_num, CpuBindMode mode) {
int CreateThreadPool(int thread_pool_id, int thread_num, int mode) {
LOG_INFO("create thread pool, thread_pool_id: %d, thread_num: %d, mode: %d", thread_pool_id, thread_num, mode);
if (thread_num <= 0 || thread_num > MAX_THREAD_NUM) {
LOG_INFO("invalid thread num: %d", thread_num);
@ -690,7 +689,7 @@ int CreateThreadPool(int thread_pool_id, int thread_num, CpuBindMode mode) {
return RET_TP_OK;
}
int ConfigThreadPool(int thread_pool_id, int thread_num, CpuBindMode mode) {
int ConfigThreadPool(int thread_pool_id, int thread_num, int mode) {
LOG_INFO("config: thread_pool_id: %d, thread_num: %d, mode: %d, is_created: %d, refcount: %d", thread_pool_id,
thread_num, mode, thread_pool_is_created[thread_pool_id], thread_pool_refcount[thread_pool_id]);
if (thread_pool_id >= MAX_THREAD_POOL_NUM) {

View File

@ -18,14 +18,28 @@
#define MINDSPORE_LITE_SRC_RUNTIME_THREAD_POOL_H_
#include <stdbool.h>
#include "include/thread_pool_config.h"
/// \brief BindMode defined for holding bind cpu strategy argument.
typedef enum {
MID_MODE = -1, /**< bind middle cpu first */
HIGHER_MODE = 1, /**< bind higher cpu first */
NO_BIND_MODE = 0 /**< no bind */
} BindMode;
/// \brief ThreadPoolId defined for specifying which thread pool to use.
typedef enum {
THREAD_POOL_DEFAULT = 0, /**< default thread pool id */
THREAD_POOL_SECOND = 1, /**< the second thread pool id */
THREAD_POOL_THIRD = 2, /**< the third thread pool id */
THREAD_POOL_FOURTH = 3 /**< the fourth thread pool id */
} ThreadPoolId;
/**
* create thread pool and init
* @param thread_num
* @param mode
*/
int ConfigThreadPool(int context_id, int thread_num, CpuBindMode mode);
int ConfigThreadPool(int thread_pool_id, int thread_num, int mode);
/**
*
@ -34,36 +48,36 @@ int ConfigThreadPool(int context_id, int thread_num, CpuBindMode mode);
* @param content
* @param task_num
*/
int ParallelLaunch(int context_id, int (*job)(void *, int), void *content, int task_num);
int ParallelLaunch(int thread_pool_id, int (*job)(void *, int), void *content, int task_num);
/**
* bind each thread to specified cpu core
* @param is_bind
* @param mode
*/
int BindThreads(int context_id, bool is_bind, CpuBindMode mode);
int BindThreads(int thread_pool_id, bool is_bind, int mode);
/**
* activate the thread pool
* @param context_id
* @param thread_pool_id
*/
void ActivateThreadPool(int context_id);
void ActivateThreadPool(int thread_pool_id);
/**
* deactivate the thread pool
* @param context_id
* @param thread_pool_id
*/
void DeactivateThreadPool(int context_id);
void DeactivateThreadPool(int thread_pool_id);
/**
*
* @return current thread num
*/
int GetCurrentThreadNum(int context_id);
int GetCurrentThreadNum(int thread_pool_id);
/**
* destroy thread pool, and release resource
*/
void DestroyThreadPool(int context_id);
void DestroyThreadPool(int thread_pool_id);
#endif // MINDSPORE_LITE_SRC_RUNTIME_THREAD_POOL_H_

View File

@ -106,7 +106,7 @@ TEST_F(InferTest, TestConvNode) {
meta_graph.reset();
content = nullptr;
auto context = new lite::Context;
context->cpu_bind_mode_ = NO_BIND;
context->cpu_bind_mode_ = lite::NO_BIND;
context->device_ctx_.type = lite::DT_CPU;
context->thread_num_ = 4;
auto session = session::LiteSession::CreateSession(context);
@ -205,7 +205,7 @@ TEST_F(InferTest, TestAddNode) {
meta_graph.reset();
content = nullptr;
auto context = new lite::Context;
context->cpu_bind_mode_ = NO_BIND;
context->cpu_bind_mode_ = lite::NO_BIND;
context->device_ctx_.type = lite::DT_CPU;
context->thread_num_ = 4;
auto session = session::LiteSession::CreateSession(context);
@ -307,7 +307,7 @@ TEST_F(InferTest, TestParallelExecutor) {
meta_graph.reset();
content = nullptr;
auto context = new lite::Context;
context->cpu_bind_mode_ = NO_BIND;
context->cpu_bind_mode_ = lite::NO_BIND;
context->device_ctx_.type = lite::DT_CPU;
context->thread_num_ = 4;
auto session = new SessionWithParallelExecutor();
@ -348,7 +348,7 @@ TEST_F(InferTest, TestModel) {
ASSERT_NE(nullptr, model);
delete[] buf[0];
auto context = new lite::Context;
context->cpu_bind_mode_ = NO_BIND;
context->cpu_bind_mode_ = lite::NO_BIND;
context->device_ctx_.type = lite::DT_CPU;
context->thread_num_ = 4;
auto session = session::LiteSession::CreateSession(context);

View File

@ -25,6 +25,7 @@
#include "src/common/common.h"
#include "include/ms_tensor.h"
#include "include/context.h"
#include "src/runtime/runtime_api.h"
namespace mindspore {
namespace lite {