What does Vivado HLS do and how is it different to what SDSoC does?
Vivado HLS lets you generate code in a hardware description language from a high level language, for example C or C++.

SDSoC can be seen as Vivado HLS with etra functionality, e.g., the possibility to combine the developed hardware with a Zynq and Linux running on the ARM cores.
Furthermore, it offer additional analysis opportunities, for example to improve the throughput between RAM and hardware accelerator.