The kernel loads the dynamic loader (which isn’t `/usr/bin/ld`; see what are the executable ELF files respectively for static linker, dynamic linker, loader and dynamic loader?).
When you run an ELF binary, the kernel uses its specific ELF binary loader; for dynamically-linked binaries, this looks for the interpreter specified in the ELF headers, loads that and instructs it to run the target binary. The interpreter is the dynamic loader, which loads any required libraries, resolves the undefined symbols, and jumps to the programs start address. (See What types of executable files exist on Linux? for details of the binary loads in the kernel.)
LWN has an article which goes into the details, How programs get run: ELF binaries.