[llvm-dev] RFC: SIMD math-function library

Tian, Xinmin via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 27 09:42:16 PDT 2016


I don't have a strong preference using either parallel_lib or compiler-rt as the home for vectorlib, or a new one. Assume we go with parallel_libs, the structure is more or less like below, right?   

                   parallel_libs
                            |
  -------------------------------------------------------------
  |                                                 |                          |
vector                             streamexecutor     offload
  |
--------------------
 |         |           |
x86   arm   power 

Thanks,
Xinmin

-----Original Message-----
From: Hal Finkel [mailto:hfinkel at anl.gov] 
Sent: Wednesday, July 27, 2016 8:46 AM
To: Chandler Carruth <chandlerc at gmail.com>; llvm-dev at lists.llvm.org
Cc: Masten, Matt <matt.masten at intel.com>; Naoki Shibata <shibatch.sf.net at gmail.com>; Tian, Xinmin <xinmin.tian at intel.com>
Subject: Re: RFC: SIMD math-function library

Hi everyone,

I think that everyone is on the same page. We'll put together a patch for review.

One remaining question: There seem two potential homes for this library: parallel_libs and compiler-rt. Opinions on where the vectorized math functions should live? My inclination is to target it for the new parallel_libs project, in part because I feel like compiler-rt has too many things grouped together already, and in part because vectorization is a form of parallel execution. Thoughts?

Thanks again,
Hal

----- Original Message -----
> From: "Xinmin Tian" <xinmin.tian at intel.com>
> To: "Naoki Shibata" <shibatch.sf.net at gmail.com>, "Hal Finkel" 
> <hfinkel at anl.gov>
> Cc: llvm-dev at lists.llvm.org, "Chandler Carruth" <chandlerc at gmail.com>, 
> "Matt Masten" <matt.masten at intel.com>
> Sent: Thursday, July 14, 2016 11:55:24 PM
> Subject: RE: RFC: SIMD math-function library
> 
> Naoki,
> 
> Intel is planning open-source SVML library (most of them if it not 
> 100%), 6 functions of SVML are open sourced for GCC and LLVM already. 
> But,  Intel SVML is x86 centric (SSE2, SSSE3, SSE4.1, SSE4.2, AVX, 
> AVX2 ....}. Personally, I am not sure if it would be fairly easy to 
> port SVML to other architectures. SVML library team may provide a 
> better answer, I will double check with them.
> 
> Given that SLEEF supports many different architectures, I think it has 
> a value for LLVM, at least before all porting is done for SVML library 
> to other architectures by LLVM community after Intel open sourced it.
> 
> Thanks,
> Xinmin
> 
> -----Original Message-----
> From: Naoki Shibata [mailto:shibatch.sf.net at gmail.com]
> Sent: Thursday, July 14, 2016 9:38 PM
> To: Hal Finkel <hfinkel at anl.gov>
> Cc: llvm-dev at lists.llvm.org; Chandler Carruth <chandlerc at gmail.com>; 
> Tian, Xinmin <xinmin.tian at intel.com>; Masten, Matt 
> <matt.masten at intel.com>
> Subject: Re: RFC: SIMD math-function library
> 
> 
> Hi all,
> 
> Okay, the point is whether Intel will publish the source code for 
> their SVML. If Intel will make SVML open-source, there would be not 
> much advantage in incorporating SLEEF into LLVM, since it would be 
> also fairly easy to port SVML to other architectures. If Intel will 
> not open-source SVML, then there could be advantage in using SLEEF for 
> x86 by inlining the functions.
> 
> Is it possible to ask the person in charge what exactly Intel is going 
> to contribute?
> 
> Naoki Shibata
> 
> 
> On 2016/07/15 12:53, Hal Finkel wrote:
> > Hi again,
> >
> > As this RFC implies, I've been using the SLEEF library proposed here 
> > with Clang/LLVM for many years, and fully support its adoption into 
> > the LLVM project.
> >
> > I'm CC'ing Matt and Xinmin from Intel who have started working on 
> > contributing support for their SVML library to LLVM 
> > (http://reviews.llvm.org/D19544), and I understand plan to 
> > contribute (some subset of) the vector math functions themselves.
> > I'm also excited about Intel's planned contributions.
> >
> > Here's how I currently see the situation: Regardless of what Intel 
> > contributes, we need a solution in this space for many different 
> > architectures. From personal experience, SLEEF is relatively easy to 
> > port to different architectures (i.e. different vector ISAs), and 
> > has already been ported to several. The performance is good as is 
> > the accuracy. I think it would make a great foundation for a 
> > vector-math-function runtime library for the LLVM project. I don't 
> > know what routines Intel is planning to contribute, or for what 
> > architectures they're tuned, but I expect we'll want to use those 
> > implementations on x86 platforms where appropriate.
> >
> > Matt, Xinmin, what do you think?
> >
> > Thanks again,
> > Hal
> 
> 

--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory


More information about the llvm-dev mailing list