Re: [eigen] BLAS backend |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] BLAS backend*From*: Christian Mayer <mail@xxxxxxxxxxxxxxxxx>*Date*: Fri, 16 Oct 2009 11:08:48 +0200*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :reply-to:user-agent:mime-version:to:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=t4T89mJkKiMsCPjoqKJ42zmzQyOIb1h/GWqNv//CESM=; b=bLz9uYWqhI2kCZ/CV6ynEDeIcmn54wAjUsJknAfRUtiEoxcSJWCTkZ6pyVRfQ1ywxL 2jTIEXQCJpBd3OMqojWD1sfQhNSwRTkGGmY4U+CDudPMMHKWQuLxfpG9prBktouMtsO0 fyxR//6n1xCFyhs53NP03hdb+MqNDDFteyExA=*Domainkey-signature*: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:reply-to:user-agent:mime-version:to :subject:references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=Ws/L3e/nTrmkmXyNEFcrf9WyUw6HyaEERK+vbcbqb8lV/HWIj9+DwxaYLTeKi9Q6tY 6haG6LLJFNABJEsqkYfnJ7ZDgG3nIZfevVJQJkWLMzhbV8IYNRiIXyJ49+xiecqmRdTx 8RQtE8hPROPP3Krai7MOu+go6TQWncE1rjF1U=

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hi all, @Jean Sreng: I don't know what your VR simulation is doing in detail. But for the normal 3D stuff you should be using small (3x3 or 4x4) fixed size matrices; those are perfectly supported by Eigen2 and using any BLAS implementation will only give you worse performance. If you are using big, variable sized matrices (e.g. to solve liear equation systems) the question for a BLAS backend is valid although it's worth a try to use the native implementation of Eigen2. As Eigen2 is using expression templates even a GPU based backend might profit by eigen as it can optimize the calculations to minimize the data transfers between CPU and GPU do to late evaluation of the equation. Aron Ahmadia schrieb: > It actually turns out that one of my students this semester is > considering how to parallelize Eigen using OpenMP for multithreading, I'm not too fond of OpenMP for parallelisation in our case. It's very good to parallelisate an loop (i.e. e.g. to multithread a single matrix multiplication) but to take advantage of the expression templates it might be not powerfull enough. MPI might be an better option there. Parallelisation at the algorithm level (= expression template level) gives you the advantage to perform operations that have no dependancy at each other. For example: result = A*B + C*D (A,B,C,D are big matrices) It's much better to have - one a two core CPU - one thread that's calculation A*B and another doing C*D than both threads fighting each other (= locks) doing A*B and then doing an C*D... In the end you need multhithreaded elementary operations (like GEMM) *and* high level parallelisation of the algorithm. And an optimizer that's deciding the best multithreading strategy for each algorithm. An very interesting and highly complex task. CU, Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREIAAYFAkrYOB8ACgkQoWM1JLkHou0V4QCfWwXmXbyIcD5AKwWhfv/xFNW+ CjoAnie0Hd3qhEK38rQdVyw1GjQkPKVU =HFo3 -----END PGP SIGNATURE-----

**Follow-Ups**:**Re: [eigen] BLAS backend***From:*Jean Sreng

**Re: [eigen] BLAS backend***From:*Aron Ahmadia

**Re: [eigen] BLAS backend***From:*Thomas Capricelli

**References**:**[eigen] BLAS backend***From:*Jean Sreng

**Re: [eigen] BLAS backend***From:*Benoit Jacob

**Re: [eigen] BLAS backend***From:*Gael Guennebaud

**Re: [eigen] BLAS backend***From:*Benoit Jacob

**Re: [eigen] BLAS backend***From:*Gael Guennebaud

**Re: [eigen] BLAS backend***From:*Benoit Jacob

**Re: [eigen] BLAS backend***From:*Aron Ahmadia

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] BLAS backend** - Next by Date:
**Re: [eigen] BLAS backend** - Previous by thread:
**Re: [eigen] BLAS backend** - Next by thread:
**Re: [eigen] BLAS backend**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |