MIPS is architecture dependent, DMIPs supposed to be architecture independent.
MIPS isn’t generally considered a useful measure of performance – it’s typically quoted based on choosing the fastest (likely one of the least capable) instructions on a machine, with no regard to the capabilities of that machine.
Consider, if I built a machine that could only execute NOP, but could execute 200 million NOPs a second, it would be a 200 MIPS machine, however, if I built an entire fully feature CPU that could execute only 100 million NOPs per second (and NOP was the fastest instruction) but could also execute loads, stores, adds, multiplies etc. etc., it would be a 100 MIPS machine – however, the NOP-only machine appears (using the MIPS measure) to be twice as “good” despite being useless.
DMIPS is based on the time taken to execute a particular benchmark, something which might be considered representative of a real workload, namely Dhrystone. The DMIPS figure for a given machine is the relative speed a VAX 11/780 (a particular “1 MIPS” machine) would have to run at to complete the benchmark in the same amount of time as the machine being measured. For example, if a 100MHz CPU completes the benchmark 200 times faster than the VAX 11/780 does, then it would be considered a 200 DMIPS machine. For CPUs that can be run at various frequencies, then you’ll often see this value reported divided through by MHz, e.g. 2 DMIPS/MHz
Both are utterly useless when you want to determine whether a special device will provide enough performance to execute a given task. to be fair though, MIPS are even a little bit more useless than DMIPs.
Use a small program that represents an important part of your task and execute that one on an evaluation board. That’s the way to go.