[Issue 4393] New: Very good dotProduct

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jun 25 15:17:44 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4393

           Summary: Very good dotProduct
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Phobos
        AssignedTo: nobody at puremagic.com
        ReportedBy: bearophile_hugs at eml.cc


--- Comment #0 from bearophile_hugs at eml.cc 2010-06-25 15:17:41 PDT ---
This is really an enhancement request.

In many programs I compute dot product among two arrays of doubles (often
inside another loop. So it's positive std.numeric.dotProduct uses assert
instead of enforce). This is sometimes the most time-critical operation of a
whole small numerical program.

So I'd like the dot product among two arrays of doubles to be specialized with
an asm routine (that uses SSE registers). In my opinion this algorithm is
simple enough and this product is critical enough to justify this asm code
added to Phobos (a disadvantage is that D front-end doesn't inline functions
that contain asm) (as array operations in druntime are often in asm).

Two more specialized routines can be added somewhere (if necessary elsewhere,
where a small vector struct is defined in Phobos) to perform dotProduct among
fixed-sized arrays of 3 or 4 doubles. This often another performance-critical
operation.

See for example:
http://www.bealto.com/mp-dot_sse.html
http://www.gamedev.net/community/forums/topic.asp?topic_id=380764

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list