https://gpu.itbrief.co/posts/understanding-cpus-gpus-and-tpus-key-differences-and-applications/