diff --git a/docs/demo_guides/cuda.md b/docs/demo_guides/cuda.md index 47d4e19160af83ee82fac49512ec4451b86cb34c..8b3e76acef590bda19a59388017added6a0b8d52 100644 --- a/docs/demo_guides/cuda.md +++ b/docs/demo_guides/cuda.md @@ -28,7 +28,27 @@ cd Paddle-Lite ./lite/tools/build.sh --build_python=ON cuda ``` -编译结束会在 `build_cuda/inference_lite_lib/python/lib/` 目录下生成 `lite_core.so`。 +## 编译结果说明 + +cuda的编译结果位于 `build_cuda/inference_lite_lib` +**具体内容**说明: + +1、 `bin`文件夹:可执行工具文件,目前为空 + +2、 `cxx`文件夹:包含c++的库文件与相应的头文件 + +- `include` : 头文件 +- `lib` : 库文件 + - 打包的静态库文件: + - `libpaddle_api_full_bundled.a` :包含 full_api 和 light_api 功能的静态库 + - 打包的动态态库文件: + - `libpaddle_full_api_shared.so` :包含 full_api 和 light_api 功能的动态库 + +3、 `third_party` 文件夹:第三方库文件 + +4、 `demo` 文件夹:c++ demo. + +如果编译打开了python选项,则会在 `build_cuda/inference_lite_lib/python/lib/` 目录下生成 `lite_core.so`。 ## 运行 @@ -36,7 +56,6 @@ cd Paddle-Lite 一: 下载darknet_yolov3模型,模型信息请参考[这里](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3) - ``` # 下载模型 wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/yolov3_infer.tar.gz @@ -47,7 +66,7 @@ wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/kite.jpg 二: 运行 -**NOTE:**此处示例使用的是python接口,后续会开放C++接口以及示例。 +**NOTE:**此处示例使用的是python接口。 ``` python #-*- coding: utf-8 -*- @@ -107,4 +126,14 @@ print (output_tensor.float_data()[:6]) ``` -**NOTE:** 对CUDA的支持还在持续开发中。 +**NOTE:** 此处示例使用的是C++接口。 + +``` +cd build_cuda/inference_lite_lib/demo/cxx/ +mkdir build && cd build +cmake .. +make +wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/yolov3_infer.tar.gz +tar -zxf yolov3_infer.tar.gz +./demo yolov3_infer +``` diff --git a/lite/kernels/cuda/fetch_compute.cc b/lite/kernels/cuda/fetch_compute.cc index fe763e5ecbd1d36d9f62074a1f3fd0e97084f6cd..17b3837d3a69aaa0b537e118a11a3df92a1ec9de 100644 --- a/lite/kernels/cuda/fetch_compute.cc +++ b/lite/kernels/cuda/fetch_compute.cc @@ -51,25 +51,4 @@ typedef paddle::lite::kernels::cuda::FetchCompute FetchFp32; // When the model ends with a cpu kernel, adding cuda's fetch kernel will add -// useless io_copy -// REGISTER_LITE_KERNEL(fetch, kCUDA, kFloat, kNCHW, FetchFp32, nchw) -// .BindInput("X", -// {LiteType::GetTensorTy(TARGET(kCUDA), -// PRECISION(kFloat), -// DATALAYOUT(kNCHW))}) -// .BindOutput("Out", -// {LiteType::GetTensorTy(TARGET(kHost), -// PRECISION(kFloat), -// DATALAYOUT(kNCHW))}) -// .Finalize(); -// -// REGISTER_LITE_KERNEL(fetch, kCUDA, kFloat, kNHWC, FetchFp32, nhwc) -// .BindInput("X", -// {LiteType::GetTensorTy(TARGET(kCUDA), -// PRECISION(kFloat), -// DATALAYOUT(kNHWC))}) -// .BindOutput("Out", -// {LiteType::GetTensorTy(TARGET(kHost), -// PRECISION(kFloat), -// DATALAYOUT(kNHWC))}) -// .Finalize(); +// useless io_copy, so we just remove register operator.