提交 e21d56ee 编写于 作者: H Helin Wang

add reuse variable

上级 a5091ef2
......@@ -150,7 +150,7 @@ func paddle_send_grads(client C.client, grads *C.paddle_gradient, total C.int) C
}
//export paddle_get_params
func paddle_get_params(client C.client, names **C.char, dst *C.paddle_parameter, total C.int) C.int {
func paddle_get_params(client C.client, names **C.char, dst *C.paddle_parameter, reuse C.int, total C.int) C.int {
var ns []string
for i := 0; i < int(total); i++ {
name := *(**C.char)(unsafe.Pointer((uintptr(unsafe.Pointer(names)) + uintptr(i)*unsafe.Sizeof(*names))))
......@@ -172,7 +172,7 @@ func paddle_get_params(client C.client, names **C.char, dst *C.paddle_parameter,
name := C.CString(p.Name)
param := (*C.paddle_parameter)(unsafe.Pointer((uintptr(unsafe.Pointer(dst)) + uintptr(i)*unsafe.Sizeof(*dst))))
if unsafe.Pointer(param.name) != nullPtr {
if reuse != 0 && unsafe.Pointer(param.name) != nullPtr {
if n := C.GoString(param.name); n != p.Name {
log.Println("warning: pre-allocated parameter name not match parameter name, pre-allocated parameter name will be freed.", n, p.Name)
C.free(unsafe.Pointer(param.name))
......@@ -183,7 +183,7 @@ func paddle_get_params(client C.client, names **C.char, dst *C.paddle_parameter,
}
memReady := false
if param.content != nullPtr {
if reuse != 0 && param.content != nullPtr {
if int(param.content_len) < len(p.Content) {
memReady = true
} else {
......
......@@ -39,13 +39,15 @@ int main() {
}
char content[] = {0x00, 0x11, 0x22};
paddle_gradient params[] = {{"param_a", PADDLE_ELEMENT_TYPE_INT32, content, 3}, {"param_b", PADDLE_ELEMENT_TYPE_FLOAT32, content, 3}};
if (!paddle_send_grads(c, params, 2)) {
paddle_gradient grads[2] = {{"param_a", PADDLE_ELEMENT_TYPE_INT32, content, 3}, {"param_b", PADDLE_ELEMENT_TYPE_FLOAT32, content, 3}};
if (!paddle_send_grads(c, grads, 2)) {
panic();
}
paddle_parameter params[2];
char* names[]={"param_a", "param_b"};
if (!paddle_get_params(c, names, params, 2)) {
if (!paddle_get_params(c, names, params, 0, 2)) {
panic();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册