Yes, the main difference between the sync and async APIs is performance, both in terms of resources used (the sync API ties up threads while waiting for results, which can be avoided using the async API) and in terms of actual RPC performance (throughput, latency, etc). For some performance best-practices, see
https://grpc.io/docs/guides/performance/.
The choice of sync vs. async API has no effect on the wire protocol. A client may choose the sync vs. async APIs, and a server may also choose the sync vs. async APIs, and no matter what either of them chooses, they will still be able to talk to each other.
I hope this info is helpful!