人工智能A7论坛 >> Tensorflow和深度学习笔记_论坛版 >> 2.基本概念和架构 >> 2.2 基本架构

2.2.2 RPC通信:

RPC(远程过程调用):两台服务器AB,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

RPC的协议有很多,比如最早的CORBA,比较有名的有Thrift(Facebook)protobuf(google)Rest APIRPC具有跨语言、跨平台的能力,使得tensorflow用一套C++/cuda编写的后台可以支撑用户在client端用各种编程语言(C++ python Go java )编程。当然RPC的最主要任务还是实现跨设备(device,也就是机器)通信。

    编程语言:

Client支持 C++ java python  Go。用户可以随意玩。对python Go java等语言的支持是通过SWIG实现的。

后台用C++。使用C++写内核,从而跨平台部署很方便。