[R] x86 SSE* Pointer Favors

From: ivo welch <ivowel_at_gmail.com>
Date: Fri, 13 Jun 2008 00:23:06 -0400


Dear Statisticians--- This is not even an R question, so please forgive me. I have so much ignorance in this matter that I do not know where to begin. I hope someone can point me to documentation and/or a sample.

I want to compute a covariance as quickly as non-humanly possible on an Intel core processor (up to SSE4) under linux. Alas, I have no idea how to engage CPU vectorization. Do I need to use special data types, or is "double" correct? Does SSE* understand NaN? Should I rely on gcc autodetection of the vectorized meaning of my code, or are there specific libraries that I should call?

What I want to learn about is as simple as it gets:   typedef double Double; // or whatever SSE* needs as close equivalent   Double vector1[N], vector2[N];
  // then fill them with stuff.
  vector3= vector_mult(vector1,vector2, N);   vector4= sum(vector1, N);

I just need a pointer and/or primer. PS: If someone knows of a superfast vectorized implementation of Gentleman's WLS algorithm, please point me to it, too. I am still using my old non-vectorized C routines.

if this email offends as spam, apologies.

regards,

/iaw



R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Fri 13 Jun 2008 - 05:43:21 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 13 Jun 2008 - 07:30:46 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive