提交 fcc6b2da 编写于 作者: W Wilber 提交者: GitHub

add cuda c++ doc. (#3207)

add cuda c++ doc
上级 9425a2bf
...@@ -28,7 +28,27 @@ cd Paddle-Lite ...@@ -28,7 +28,27 @@ cd Paddle-Lite
./lite/tools/build.sh --build_python=ON cuda ./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 ...@@ -36,7 +56,6 @@ cd Paddle-Lite
一: 下载darknet_yolov3模型,模型信息请参考[这里](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3) 一: 下载darknet_yolov3模型,模型信息请参考[这里](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3)
``` ```
# 下载模型 # 下载模型
wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/yolov3_infer.tar.gz 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 ...@@ -47,7 +66,7 @@ wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/kite.jpg
二: 运行 二: 运行
**NOTE:**此处示例使用的是python接口,后续会开放C++接口以及示例 **NOTE:**此处示例使用的是python接口。
``` python ``` python
#-*- coding: utf-8 -*- #-*- coding: utf-8 -*-
...@@ -107,4 +126,14 @@ print (output_tensor.float_data()[:6]) ...@@ -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
```
...@@ -51,25 +51,4 @@ typedef paddle::lite::kernels::cuda::FetchCompute<float, PRECISION(kFloat)> ...@@ -51,25 +51,4 @@ typedef paddle::lite::kernels::cuda::FetchCompute<float, PRECISION(kFloat)>
FetchFp32; FetchFp32;
// When the model ends with a cpu kernel, adding cuda's fetch kernel will add // When the model ends with a cpu kernel, adding cuda's fetch kernel will add
// useless io_copy // useless io_copy, so we just remove register operator.
// 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();
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册