| ▲ | tuhgdetzhh 5 hours ago | |||||||||||||
What is the difference between a DSP and Asic? Is a GPU a DSP? | ||||||||||||||
| ▲ | bfrog 5 hours ago | parent | next [-] | |||||||||||||
DSP is simply a compute architecture that focuses on mutliply and accumulate operations on particular numerical formats, often either fixed point q15/q31 type values or floats f16/f32. The basic operation that a NN needs accelerating is... go figure multiply and accumulate with the added activation function. See for example how the Intel NPU is structured here: https://intel.github.io/intel-npu-acceleration-library/npu.h... | ||||||||||||||
| ▲ | imtringued 5 hours ago | parent | prev | next [-] | |||||||||||||
A DSP contains analog to digital and digital to analog converters plus DMA for fast transfers to main memory and fixed function blocks for finite impulse response and infinite pulse response filters. The fact that they also support vector operations or matrix multiplication is kind of irrelevant and not a defining characteristic of DSPs. If you want to go that far, then everything is a DSP, because all signals are analog. | ||||||||||||||
| ||||||||||||||
| ▲ | duped 5 hours ago | parent | prev [-] | |||||||||||||
ASICs bake one algorithm into the chip. DSPs are programmable, like GPUs or CPUs. The thing that historically set them apart were MAC/FMA and zero overhead loops. Then there are all the nice to haves, like built in tables of FFT twiddle factors, helpers for 1D convolution, vector instructions, fixed point arithmetic, etc. What makes a DSP different from a GPU is the algorithms typically do not scale nicely to large matrices and vectors. For example, recursive filters. They are also usually much cheaper and lower power, and the reason they lost popularity was because Arm MCUs got good enough and economy of scale kicked in. I've written code for DSPs both in college and professionally. It's much like writing code for CPUs or MCUs (it's all C or C++ at the end of the day). But it's very different from writing compute shaders or designing an ASIC. | ||||||||||||||