@@ -43,8 +43,13 @@ func (config *AnalysisConfig) SetModel(model, params string) {
4343 //C.printString((*C.char)(unsafe.Pointer(&s[0])))
4444 c_model := C .CString (model )
4545 defer C .free (unsafe .Pointer (c_model ))
46- c_params := C .CString (params )
47- defer C .free (unsafe .Pointer (c_params ))
46+ var c_params * C.char
47+ if params == "" {
48+ c_params = nil
49+ } else {
50+ c_params = C .CString (params )
51+ defer C .free (unsafe .Pointer (c_params ))
52+ }
4853
4954 C .PD_SetModel (config .c , c_model , c_params )
5055}
@@ -61,8 +66,8 @@ func (config *AnalysisConfig) ParamsFile() string {
6166 return C .GoString (C .PD_ParamsFile (config .c ))
6267}
6368
64- func (config * AnalysisConfig ) EnableUseGpu (memory_pool_init_size_mb uint64 , device_id int ) {
65- C .PD_EnableUseGpu (config .c , C .ulong (memory_pool_init_size_mb ), C .int (device_id ))
69+ func (config * AnalysisConfig ) EnableUseGpu (memory_pool_init_size_mb int , device_id int ) {
70+ C .PD_EnableUseGpu (config .c , C .int (memory_pool_init_size_mb ), C .int (device_id ))
6671}
6772
6873func (config * AnalysisConfig ) DisableGpu () {
@@ -113,7 +118,9 @@ func (config *AnalysisConfig) SpecifyInputName() bool {
113118 return ConvertCBooleanToGo (C .PD_SpecifyInputName (config .c ))
114119}
115120
116- //func (config *AnalysisConfig) EnableTensorRtEngine(workspace_size int)
121+ func (config * AnalysisConfig ) EnableTensorRtEngine (workspace_size int , max_batch_size int , min_subgraph_size int , precision Precision , use_static bool , use_calib_mode bool ) {
122+ C .PD_EnableTensorRtEngine (config .c , C .int (workspace_size ), C .int (max_batch_size ), C .int (min_subgraph_size ), C .Precision (precision ), C .bool (use_static ), C .bool (use_calib_mode ))
123+ }
117124
118125func (config * AnalysisConfig ) TensorrtEngineEnabled () bool {
119126 return ConvertCBooleanToGo (C .PD_TensorrtEngineEnabled (config .c ))
@@ -175,15 +182,15 @@ func (config *AnalysisConfig) DisableGlogInfo() {
175182}
176183
177184func (config * AnalysisConfig ) DeletePass (pass string ) {
178- c_pass := C .CString (pass )
179- defer C .free (unsafe .Pointer (c_pass ))
180- C .PD_DeletePass (config .c , c_pass )
185+ c_pass := C .CString (pass )
186+ defer C .free (unsafe .Pointer (c_pass ))
187+ C .PD_DeletePass (config .c , c_pass )
181188}
182189
183190func (config * AnalysisConfig ) SetInValid () {
184- C .PD_SetInValid (config .c )
191+ C .PD_SetInValid (config .c )
185192}
186193
187194func (config * AnalysisConfig ) IsValid () bool {
188- return ConvertCBooleanToGo (C .PD_IsValid (config .c ))
195+ return ConvertCBooleanToGo (C .PD_IsValid (config .c ))
189196}
0 commit comments