KVM (Kernel Virtual Machine) is a Linux kernel module that allows a user space program to utilize the hardware virtualization features of various processors.
QEMU is a machine emulator.
QEMU can make use of KVM when running a target architecture that is the same as the host architecture (which gives significant performance advantages).
KVM is not strictly dependent on QEMU but they are usually used together. If you don't need the kernel level hw support (i.e. emulating a different architecture to the host platform) then QEMU can be used independently.
QEMU is a machine emulator.
QEMU can make use of KVM when running a target architecture that is the same as the host architecture (which gives significant performance advantages).
KVM is not strictly dependent on QEMU but they are usually used together. If you don't need the kernel level hw support (i.e. emulating a different architecture to the host platform) then QEMU can be used independently.