“1ad8f8211c6f6bdb938afa47dfd833c74daeb4b0”上不存在“...operators/kernel/central-arm-func/increment_arm_func.h”
提交 fe4cefd1 编写于 作者: L liuqi

Use small input for out of range test for mali gpu.

上级 9e305d67
...@@ -161,7 +161,47 @@ void OpenCLPrintfCallback(const char *buffer, ...@@ -161,7 +161,47 @@ void OpenCLPrintfCallback(const char *buffer,
void *user_data) { void *user_data) {
fwrite(buffer, 1, length, stdout); fwrite(buffer, 1, length, stdout);
} }
void GetAdrenoContextProperties(std::vector<cl_context_properties> *properties,
GPUPerfHint gpu_perf_hint,
GPUPriorityHint gpu_priority_hint) {
MACE_CHECK_NOTNULL(properties);
switch (gpu_perf_hint) {
case GPUPerfHint::PERF_LOW:
properties->push_back(CL_CONTEXT_PERF_HINT_QCOM);
properties->push_back(CL_PERF_HINT_LOW_QCOM);
break;
case GPUPerfHint::PERF_NORMAL:
properties->push_back(CL_CONTEXT_PERF_HINT_QCOM);
properties->push_back(CL_PERF_HINT_NORMAL_QCOM);
break;
case GPUPerfHint::PERF_HIGH:
properties->push_back(CL_CONTEXT_PERF_HINT_QCOM);
properties->push_back(CL_PERF_HINT_HIGH_QCOM);
break;
default:
break;
}
switch (gpu_priority_hint) {
case GPUPriorityHint::PRIORITY_LOW:
properties->push_back(CL_CONTEXT_PRIORITY_HINT_QCOM);
properties->push_back(CL_PRIORITY_HINT_LOW_QCOM);
break;
case GPUPriorityHint::PRIORITY_NORMAL:
properties->push_back(CL_CONTEXT_PRIORITY_HINT_QCOM);
properties->push_back(CL_PRIORITY_HINT_NORMAL_QCOM);
break;
case GPUPriorityHint::PRIORITY_HIGH:
properties->push_back(CL_CONTEXT_PRIORITY_HINT_QCOM);
properties->push_back(CL_PRIORITY_HINT_HIGH_QCOM);
break;
default:
break;
}
// The properties list should be terminated with 0
properties->push_back(0);
} }
} // namespace
void OpenCLProfilingTimer::StartTiming() {} void OpenCLProfilingTimer::StartTiming() {}
...@@ -193,7 +233,7 @@ GPUPriorityHint OpenCLRuntime::kGPUPriorityHint = ...@@ -193,7 +233,7 @@ GPUPriorityHint OpenCLRuntime::kGPUPriorityHint =
GPUPriorityHint::PRIORITY_DEFAULT; GPUPriorityHint::PRIORITY_DEFAULT;
OpenCLRuntime *OpenCLRuntime::Global() { OpenCLRuntime *OpenCLRuntime::Global() {
static OpenCLRuntime runtime(kGPUPerfHint, kGPUPriorityHint); static OpenCLRuntime runtime;
return &runtime; return &runtime;
} }
...@@ -203,48 +243,8 @@ void OpenCLRuntime::Configure(GPUPerfHint gpu_perf_hint, ...@@ -203,48 +243,8 @@ void OpenCLRuntime::Configure(GPUPerfHint gpu_perf_hint,
OpenCLRuntime::kGPUPriorityHint = gpu_priority_hint; OpenCLRuntime::kGPUPriorityHint = gpu_priority_hint;
} }
void GetAdrenoContextProperties(std::vector<cl_context_properties> *properties,
GPUPerfHint gpu_perf_hint,
GPUPriorityHint gpu_priority_hint) {
MACE_CHECK_NOTNULL(properties);
switch (gpu_perf_hint) {
case GPUPerfHint::PERF_LOW:
properties->push_back(CL_CONTEXT_PERF_HINT_QCOM);
properties->push_back(CL_PERF_HINT_LOW_QCOM);
break;
case GPUPerfHint::PERF_NORMAL:
properties->push_back(CL_CONTEXT_PERF_HINT_QCOM);
properties->push_back(CL_PERF_HINT_NORMAL_QCOM);
break;
case GPUPerfHint::PERF_HIGH:
properties->push_back(CL_CONTEXT_PERF_HINT_QCOM);
properties->push_back(CL_PERF_HINT_HIGH_QCOM);
break;
default:
break;
}
switch (gpu_priority_hint) {
case GPUPriorityHint::PRIORITY_LOW:
properties->push_back(CL_CONTEXT_PRIORITY_HINT_QCOM);
properties->push_back(CL_PRIORITY_HINT_LOW_QCOM);
break;
case GPUPriorityHint::PRIORITY_NORMAL:
properties->push_back(CL_CONTEXT_PRIORITY_HINT_QCOM);
properties->push_back(CL_PRIORITY_HINT_NORMAL_QCOM);
break;
case GPUPriorityHint::PRIORITY_HIGH:
properties->push_back(CL_CONTEXT_PRIORITY_HINT_QCOM);
properties->push_back(CL_PRIORITY_HINT_HIGH_QCOM);
break;
default:
break;
}
// The properties list should be terminated with 0
properties->push_back(0);
}
OpenCLRuntime::OpenCLRuntime(GPUPerfHint gpu_perf_hint, OpenCLRuntime::OpenCLRuntime():
GPUPriorityHint gpu_priority_hint):
storage_(nullptr), is_profiling_enabled_(false) { storage_(nullptr), is_profiling_enabled_(false) {
LoadOpenCLLibrary(); LoadOpenCLLibrary();
...@@ -302,8 +302,9 @@ OpenCLRuntime::OpenCLRuntime(GPUPerfHint gpu_perf_hint, ...@@ -302,8 +302,9 @@ OpenCLRuntime::OpenCLRuntime(GPUPerfHint gpu_perf_hint,
if (gpu_type_ == GPUType::QUALCOMM_ADRENO) { if (gpu_type_ == GPUType::QUALCOMM_ADRENO) {
std::vector<cl_context_properties> context_properties; std::vector<cl_context_properties> context_properties;
context_properties.reserve(5); context_properties.reserve(5);
GetAdrenoContextProperties(&context_properties, gpu_perf_hint, GetAdrenoContextProperties(&context_properties,
gpu_priority_hint); OpenCLRuntime::kGPUPerfHint,
OpenCLRuntime::kGPUPriorityHint);
context_ = std::shared_ptr<cl::Context>( context_ = std::shared_ptr<cl::Context>(
new cl::Context({*device_}, context_properties.data(), new cl::Context({*device_}, context_properties.data(),
nullptr, nullptr, &err)); nullptr, nullptr, &err));
......
...@@ -80,7 +80,7 @@ class OpenCLRuntime { ...@@ -80,7 +80,7 @@ class OpenCLRuntime {
const bool is_profiling_enabled() const; const bool is_profiling_enabled() const;
private: private:
OpenCLRuntime(GPUPerfHint, GPUPriorityHint); OpenCLRuntime();
~OpenCLRuntime(); ~OpenCLRuntime();
OpenCLRuntime(const OpenCLRuntime &) = delete; OpenCLRuntime(const OpenCLRuntime &) = delete;
OpenCLRuntime &operator=(const OpenCLRuntime &) = delete; OpenCLRuntime &operator=(const OpenCLRuntime &) = delete;
......
...@@ -118,12 +118,10 @@ class OutOfRangeCheckTest : public ::testing::Test { ...@@ -118,12 +118,10 @@ class OutOfRangeCheckTest : public ::testing::Test {
}; };
TEST(OutOfRangeCheckTest, RandomTest) { TEST(OutOfRangeCheckTest, RandomTest) {
static unsigned int seed = time(NULL); index_t batch = 3;
for (int round = 0; round < 10; ++round) { index_t height = 5;
index_t batch = 11 + rand_r(&seed) % 10; index_t width = 7;
index_t height = 12 + rand_r(&seed) % 100; index_t channels = 11;
index_t width = 13 + rand_r(&seed) % 100;
index_t channels = 14 + rand_r(&seed) % 50;
std::vector<index_t> buffer_shape = {batch, height, width, channels}; std::vector<index_t> buffer_shape = {batch, height, width, channels};
Workspace ws; Workspace ws;
...@@ -145,7 +143,6 @@ TEST(OutOfRangeCheckTest, RandomTest) { ...@@ -145,7 +143,6 @@ TEST(OutOfRangeCheckTest, RandomTest) {
overflow_image_shape[i] += 1; overflow_image_shape[i] += 1;
} }
ASSERT_TRUE(BufferToImageOpImpl(buffer, image, overflow_image_shape)); ASSERT_TRUE(BufferToImageOpImpl(buffer, image, overflow_image_shape));
}
} }
} // namespace kernels } // namespace kernels
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册