This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Help Choosing a processor

I have been given the task of selecting a suitable processor for a project in which we will have a dedicated processor.

The project will involve configuring HW and inverting matrices in C.  We will use the Cholesky algorithm in double precision.  We don't plan to use any OS but run the app bare metal.  We have to handle DDR memory transfer and interrupts.  The maximum size of the matrix will be around 1.2MB.

Some noob questions I have are:

Will using a DP FPU help as we use our algorithms in DP?  I know it may sound obvious but I know obvious things usually are not what they seem.  How much benefit will that give?

Are there any processors which support a large enough L2 cache to fit the data?

Are the different ISAs of any benefit here?  I see that the ARMv8-M has "Floating point extension architecture v5 "  Is this something that should be considered?

Performance is key here, we must invert the matrices every 250ms and we hope it doesn't take more than 30ms to do the inversion.

Any other pointers on what I should look for when selecting a processor would be appreciated.  I was thinking a processor speed of at least 700MHz would be needed.

  • I think you're pushing it a bit with any of the Cortex-M processors and the v8 versions aren't really around yet. However the Cortex-M7 does have an  option to support double and might be good enough for your task.

    Have you though of just trying out a cheap Cortex-A board like the Raspberry Pi 3? You could get one easily to try things out on and it has SIMD which can be used to speed up matrix operations if you find you still can't quite get the speed - that board just might scrape by at doing a 400x400 matrix invert in 30ms for all I know but if so it would need careful coding I think.

    By the way you might like John Cook on Don't Invert that Matrix