[Hackthon_4th 244] Added Paddle Lite GPU Backend (#1907)

* [improved] enum; ConfigureGpu();

* [improved] init()

* [improved] valid place; model dir; is valid;

* [added] WITH_OPENCL in cmake

* [improved] set model; valid place; cmake url; cmake option;

* Update runtime_option.cc

---------

Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
This commit is contained in:
unseenme
2023-05-12 20:44:27 +09:00
committed by GitHub
parent 15c29f7e49
commit 3fd21c935e
10 changed files with 70 additions and 10 deletions

View File

@@ -49,6 +49,31 @@ void LiteBackend::ConfigureCpu(const LiteBackendOption& option) {
config_.set_valid_places(GetPlacesForCpu(option));
}
void LiteBackend::ConfigureGpu(const LiteBackendOption& option) {
std::vector<paddle::lite_api::Place> valid_places;
if (option.enable_fp16) {
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kFP16), DATALAYOUT(kImageDefault)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kFP16), DATALAYOUT(kImageFolder)});
}
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kFloat)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kAny), DATALAYOUT(kImageDefault)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kAny), DATALAYOUT(kImageFolder)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kAny)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kOpenCL),
PRECISION(kInt32)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kARM),
PRECISION(kInt8)});
valid_places.emplace_back(paddle::lite_api::Place{TARGET(kARM),
PRECISION(kFloat)});
config_.set_valid_places(valid_places);
}
void LiteBackend::ConfigureKunlunXin(const LiteBackendOption& option) {
std::vector<paddle::lite_api::Place> valid_places;
// TODO(yeliang): Placing kInt8 first may cause accuracy issues of some model