Seit wann gibt es die FPU und sollte man sie vorziehen?



  • Hi,

    seit wann gibt es die CPU und ab welcher CPU Serie sollte man sie voraussetzen (486dx2?), lohnen sich abfragen ob die FPU von der CPU unterstützt werden noch? Sollte man z.B. fsqrt dem aus der C lib vorziehen? wenn ja warum wenn nein das selbe.

    Was issn besser zum Wurzelziehen? SIMD oder FPU?



  • ja seit 486DX ist die FPU in der CPU eingebaut.
    hmm also ich hab schon ewig keinen 486 mehr gesehen, also denke ich, dass du die FPU einfach voraussetzen kannst.

    für deine restlichen fragen: probier doch einfach mal aus was schneller ist.



  • Zum Wurzelziehen und SIMD:

    SSE gibt's halt erst ab PIII, da hast du also float-Genauigkeit, SSE2 ab P4, da gibt's dann double-Genauigkeit.

    Es sollte dir eigentlich egal sein, verwende einfach sqrt und lass den Compiler machen, was er glaubt. gcc und VC++ haben beide Optionen, mit denen sie ein sqrt in einen schnellen Maschinenbefehl übersetzen (ich weiß sie aber nicht auswendig). Damit bist du plattformunabhängig, kannst bei Bedarf auch für verschiedene x86-CPUs optimieren, ...



  • ich würde auf jeden fall immer gucken ob 'ne fpu da ist. es gibt immer noch genuch leute mit 386ern.

    .model small
    .data
        m1 db 'Keine $'
        m2 db 'FPU vorhanden $'
        SW dw 0FFFFh
        CW dw 0FFFFh
    .code
    start:
        mov ax, @data
        mov ds, ax
        finit
        fnstsw SW
        cmp SW, 0
        jne nv
        fnstcw CW
        cmp CW, 037h
        jne nv
        jmp short vh
    nv:
        mov ah, 09h
        lea     dx, m1
        int 21h
    vh:
        mov ah, 09h
        lea dx, m2
        int 21h
        mov ax, 4C00h
        int 21
    ends
    end start
    


  • also FPU heißt 'floating point unit'
    Sie ist zu benutzen, wenn man mit Gleitkommazahlen rechnet.


Anmelden zum Antworten