Deutsch English Français Italiano |
<2349024291af878a184e6c612ba2b549@www.novabbs.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: mitchalsup@aol.com (MitchAlsup1) Newsgroups: comp.arch Subject: Re: Short Vectors Versus Long Vectors Date: Thu, 2 May 2024 20:10:35 +0000 Organization: Rocksolid Light Message-ID: <2349024291af878a184e6c612ba2b549@www.novabbs.org> References: <v06vdb$17r2v$1@dont-email.me> <0D7YN.12641$oA33.7712@fx34.iad> <e9aa636b6b12f1ac0af12946151219f4@www.novabbs.org> <pycYN.33914$iMKd.26920@fx12.iad> <v0rtm6$2o1mj$5@dont-email.me> <66c323063468ebc28ce3b5ae8d28c2ac@www.novabbs.org> <v0su1a$32b6q$1@dont-email.me> <v0vhve$3o6jt$1@dont-email.me> <v0vrk4$3qch6$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="3060445"; mail-complaints-to="usenet@i2pn2.org"; posting-account="65wTazMNTleAJDh/pRqmKE7ADni/0wesT78+pyiDW8A"; User-Agent: Rocksolid Light X-Rslight-Site: $2y$10$lGBttE6FDS5X82bAhpWQBeX9W3/ckW0ILRdU8nmSg5rm8IbSOFotW X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Rslight-Posting-User: ac58ceb75ea22753186dae54d967fed894c3dce8 Bytes: 2899 Lines: 43 Thomas Koenig wrote: > Terje Mathisen <terje.mathisen@tmsw.no> schrieb: >> Thomas Koenig wrote: >>> MitchAlsup1 <mitchalsup@aol.com> schrieb: >>> >>>> Then contemplate for an instant that one would want SIMD instructions for >>>> Complex numbers and Hamiltonian Quaterions...... >>> >>> Quaternions would be a bit over the top, I tink. Complex >>> multiplication... implementing (e,f) = (a*c-b*d,a*d+b*c) is >>> >>> fmul Rt1,Rc,Rb >>> fmac Re,Rd,Ra,Rt1 >>> >>> fmul Rt2,Rd,Rb >>> fmac Rf,Rc,Ra,-Rt2 >>> >>> So, you'd need both operands on both lanes. Not very SIMD-friendly, >>> I would assume, but (probably) not impossible, either. >>> >> If you have the four operands spread across two SIMD registers, so >> (Re,Im) in each, then you need an initial pair of permutes to make >> flipped copies before you can start the fmul/fmac ops, right? >> >> This is exactly the kind of code where Mitch's transparent vector >> processing would be very nice to have. > I'm actually not sure how that would help. Could you elaborate? VVM synthesizes SIMD (lanes) and strip-mining (Cray-like vectors) while processing SCALAR code. So, as long as the compiler knows which operands are participating, almost any amount of <strange> Complexity drops out for free -- including things like Quaternions. Physicists like quaternions because it means they don't have to worry about whether to add or subtract, the {i,j,k} does it for them. Complex is OK for flat spaces but when one is dealing with non Cartesian coordinates (like within the radius of the proton) other effects makes quaternions a better path.