Hi,

Currently, MXNet has Protobuf ( version 2.5) as one of its dependency. The 
dependency comes from 
PS-lite<https://github.com/dmlc/ps-lite/blob/a6dda54604a07d1fb21b016ed1e3f4246b08222a/make/deps.mk#L11>
 used for distributed training.
Recently, we have added ONNX support in MXNet(1.2.0) contrib package( import 
ONNX support). This module has a runtime dependency on Protobuf(version 3) , 
needed for ONNX.
So, if a user tries to do “import onnx”, will get a message:

“To use this module developers need to install ONNX, which requires the 
protobuf compiler to be installed separately. Please follow the instructions to 
install ONNX and its dependencies<https://github.com/onnx/onnx#installation>. 
MXNet currently supports ONNX v1.1.1. Once installed, you can go through the 
tutorials on how to use this module.”

User will end up installing protobuf version 3.5.2. Since Protobuf backward 
compatibility is flaky, anything dependent on version < 2.6, will probably 
break. In this case, distributed training might break for the user.

IMO, To resolve this dependency conflict in MXNet, would require an update to 
PS-lite dependency to  Protobuf version 3. Is there a POA to update this 
dependency for PS-lite?
FYI: We are also working on adding an export module support, will export MXNet 
models to ONNX format, which will also have Protobuf version 3 and ONNX as its 
runtime dependency.

Please let me know, what should be best path moving forward.

Thanks
Rajan

Reply via email to