[Libre-soc-bugs] [Bug 1044] SVP64 implementation of pow(x,y,z)
    bugzilla-daemon at libre-soc.org 
    bugzilla-daemon at libre-soc.org
       
    Mon Oct  9 06:08:58 BST 2023
    
    
  
https://bugs.libre-soc.org/show_bug.cgi?id=1044
Jacob Lifshay <programmerjake at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://bugs.libre-soc.org/
                   |                            |show_bug.cgi?id=973
--- Comment #35 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #33)
> (In reply to Jacob Lifshay from comment #32)
> 
> >     add WIP knuth algorithm D python implementation
> 
> nice. clear.
> 
>    362    if qhat * vn[n - 2] > (rhat << word_size) + un[j + n - 2]:
> 
> can use 1<<r3 on that, where r3=j, temporarily, rather than Indexed
> REMAP. but really, Indexed REMAP is a necessity here.
actually, I think using svoffset is a much better idea. (we need a dynamic
instruction to set svoffset for dynamic bigint shifts anyway, bug #973)
> 
> 
>    380             # subfe
>    381             t += ~product[i] + un[j + i]
> 
> just sv.subfe!
yup!
> but you need Indexed REMAP on un[j+i]
> and can replace it later with Bigmul (rhombic) REMAP.
> 
> ultimately though this *is* going to need Vertical-First,
> with the "svstep." notification, as the loops j and i are
> nested.
I disagree, this algorithm isn't very suitable for vertical-first, because it
has both operations in one and two loop nesting levels:
e.g.:
for j in ...:
    qhat = ...  # scalar here
    for i in ...:  # vector here
        mul/add/sub
    for i in ...:  # more vector here with different offsets
        mul/add/sub
this makes it not really work with rhombic REMAP.
another reason vertical-first isn't very suitable: several sections are
necessary for correctness but extremely rarely run (for random inputs on the
order of 1 in 2^64), such as the qhat overflow and add-back sections.
Therefore I'm planning on writing it to use horizontal-first with svoffset.
-- 
You are receiving this mail because:
You are on the CC list for the bug.
    
    
More information about the libre-soc-bugs
mailing list