@@ -96,7 +96,7 @@ There are two modes in term of memory management in `PaddleBuf` :
In the two modes, the first is more convenient while the second strictly controls memory management to facilitate integration with `tcmalloc` and other libraries.
### Upgrade performance based on contrib::AnalysisConfig (Prerelease)
### Upgrade performance based on contrib::AnalysisConfig
AnalyisConfig is at the stage of pre-release and protected by `namespace contrib` , which may be adjusted in the future.
...
...
@@ -106,9 +106,11 @@ The usage of `AnalysisConfig` is similiar with that of `NativeConfig` but the fo
```c++
AnalysisConfigconfig;
config.model_dir=xxx;
config.use_gpu=false;// GPU optimization is not supported at present
config.specify_input_name=true;// it needs to set name of input
config.SetModel(dirname);// set the directory of the model
config.EnableUseGpu(100,0/*gpu id*/);// use GPU,or
config.DisableGpu();// use CPU
config.SwitchSpecifyInputNames(true);// need to appoint the name of your input
config.SwitchIrOptim();// turn on the optimization switch,and a sequence of optimizations will be executed in operation
```
Note that input PaddleTensor needs to be allocated. Previous examples need to be revised as follows:
...
...
@@ -147,7 +149,7 @@ For more specific examples, please refer to[LoD-Tensor Instructions](../../../us
1. If the CPU type permits, it's best to use the versions with support for AVX and MKL.
2. Reuse input and output `PaddleTensor` to avoid frequent memory allocation resulting in low performance
3. Try to replace `NativeConfig` with `AnalysisConfig` to perform optimization for CPU inference
3. Try to replace `NativeConfig` with `AnalysisConfig` to perform optimization for CPU or GPU inference