← Back to team overview

kicad-developers team mailing list archive

Re: pcbnew - thermal stubs

 

On Sun, 11 Jan 2009, Rok Markovic wrote:
NET. The solution is to use more points to test where is the zone, and
to test if the point is on the pad. This can make zone calculation even
slower, I didn't test how fast is TestIfPointIsInsideZone(), does anyone
knows.

For calculating the points for testing it would be very convinient and
fast to use vector calculations. Is there already any vector(matrix)
computational library already in use in this project?

I tried compiling kicad with GCC autovectorization enabled, but wasn't able to get much speedup. That's mostly because I didn't compile Boost too I guess. Jean-Pierre said that polygon slowness is probably because of the drawing, but I dont know. As I can not do real profiling of wx programs everything is just guessing. I even tested changing trigonometry look up tables to native/SSE functions to spare cpu cache, but got very marginal boost.

In these easily parallelised parts, just go ahead and implement it. Here is some links you may find useful:

http://gcc.gnu.org/projects/tree-ssa/vectorization.html
http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html

If anyone could give pointers to using GNU profiler (gprof) with KiCad I'd be delighted :)

I think gcc vector extensions or autovectosization would be the cleanest and most portable way of doing this and avoid another third-party library. They seem to be geared towards image processing and generic dsp and may be a bit out of scope for this. It is implementors choice in the end...

-Vesa






Follow ups

References