Prime Cores V1.0 Freeware
-
bonis62 ha scritto:
[..........]
void CarryNormalize(real *Convolution, ulong Len, BigInt &C) { [color=Red][b]real inv = 0.5 / Len[/b][/color]; real RawPyramid, Pyramid, PyramidError, Carry = 0; ulong x; ushort *c = C.Coef; if ( Len > C.SizeMax ) Len=C.SizeMax; MaxError = 0; for (x = 0; x MaxError) MaxError = PyramidError; Carry = floor(Pyramid / BASE); c[x] = (short)(Pyramid - Carry * BASE); } do { x--; } while (c[x]==0); C.Size = x+1; } void FHTConvolution(real *LongNum1, const real *LongNum2, ulong Len) { ulong Step=2, Step2=Step*2; ulong x,y; LongNum1[0] = LongNum1[0] * 2.0 * LongNum2[0]; LongNum1[1] = LongNum1[1] * 2.0 * LongNum2[1]; while (Stepquesta è la routine di splitting binario
o convoluzione, che in base ad una certa
ampiezza mi taglia porzioni di frequenza,
tipo fare una torta a fette identiche con due coltelli ed entrambe le mani

immagino che il valore di quel real inv sia dovuto a:
real inv = 1/(len/2)
Ammetto che per seguirti devo accelerare un pò

Quello che non riesco ancora a correlare, è in che modo potrai fare utilizzo dei valori di signalling NaNs, perchè non credo che esista una funzione apposita.
Quindi, constatando che stai proseguendo speditamente, immagino tu abbia già qualcosa in pentola?!

Per conto mio ho scovato qualcosa che potrebbe esserti d'aiuto ...... con parte di codice in assembler (che non guasta mai
)void main() { double a, b, c; a*=7; // Exactly the same as it is now, a is nan. enableExceptions(); c = 6; // ok, c is initialized now c *= 10; b *= 10; // BANG ! Straight into the debugger b *= 5; disableExceptions(); } void enableExceptions() { version(D_InlineAsm_X86) { short cont; asm { fclex; fstcw cont; mov AX, cont; and AX, 0xFFFE; // enable invalid exception mov cont, AX; fldcw cont; } } } void disableExceptions() { version(D_InlineAsm_X86) { short cont; asm { fclex; fstcw cont; mov AX, cont; or AX, 0x1; // disable invalid exception mov cont, AX; fldcw cont; } } } -
Totocellux ha scritto:
immagino che il valore di quel real inv sia dovuto a:real inv = 1/(len/2)
Ammetto che per seguirti devo accelerare un pò

Quello che non riesco ancora a correlare, è in che modo potrai fare utilizzo dei valori di signalling NaNs, perchè non credo che esista una funzione apposita.
Quindi, constatando che stai proseguendo speditamente, immagino tu abbia già qualcosa in pentola?!

Per conto mio ho scovato qualcosa che potrebbe esserti d'aiuto ...... con parte di codice in assembler (che non guasta mai
)void main() { double a, b, c; a*=7; // Exactly the same as it is now, a is nan. enableExceptions(); c = 6; // ok, c is initialized now c *= 10; b *= 10; // BANG ! Straight into the debugger b *= 5; disableExceptions(); } void enableExceptions() { version(D_InlineAsm_X86) { short cont; asm { fclex; fstcw cont; mov AX, cont; and AX, 0xFFFE; // enable invalid exception mov cont, AX; fldcw cont; } } } void disableExceptions() { version(D_InlineAsm_X86) { short cont; asm { fclex; fstcw cont; mov AX, cont; or AX, 0x1; // disable invalid exception mov cont, AX; fldcw cont; } } }m,anca il registro BX
senza il registro BX
AX e inutilizzabile

NAN 
#include #include "mex.h" void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { int i, n; double *pr, *pi; double inf, nan; /* Check for proper number of input and output arguments */ if (nrhs != 1) { mexErrMsgTxt("One input argument required."); } if(nlhs > 1){ mexErrMsgTxt("Too many output arguments."); } /* Check data type of input argument */ if (!mxIsDouble(prhs[0]) || mxIsComplex(prhs[0])) { mexErrMsgTxt("Input argument must be of type real double."); } /* Duplicate input array */ plhs[0]=mxDuplicateArray(prhs[0]); pr = mxGetPr(plhs[0]); pi = mxGetPi(plhs[0]); n = mxGetNumberOfElements(plhs[0]); inf = mxGetInf(); nan=mxGetNaN(); /* Check for 0, in real part of data, if the data is zero, replace with NaN. Also check for INT_MAX and INT_MIN and replace with INF/-INF respectively. */ for(i=0; i = INT_MAX){ pr[i]=inf; } else if (pr[i] -
bonis62 ha scritto:
m,anca il registro BXsenza il registro BX
AX e inutilizzabile

[..........]
beh, ma quella dovrebbe essere semplicemente una parte della routine: al momento di ampliarla ed avere la necessità di utilizzare un offset o un indice non mancherebbe certo a te usare proficuamente BX come registro!

-
Totocellux ha scritto:
beh, ma quella dovrebbe essere semplicemente una parte della routine: al momento di ampliarla ed avere la necessità di utilizzare un offset o un indice non mancherebbe certo a te usare proficuamente BX come registro!
certo ,
comunque è un registro implicito,
cioè ax contiene sempre la metà di bx ...o l'inverso ?

non mi ricordo piu !!!
..la vecchiaia....!!! 
NOTA:
mettendo più a fuoco....
Quanti lustri ha quel codice ? sembra roba epoca " 1000 spartani"

anche se devo dire che l'idea non e malaccio , anche se ....spartana ....
:asd:
:asd: -
bonis62 ha scritto:
[...........]
NOTA:
mettendo più a fuoco....
Quanti lustri ha quel codice ? sembra roba epoca " 1000 spartani"

anche se devo dire che l'idea non e malaccio , anche se ....spartana ....
:asd:
:asd:il concetto di sicuro non è recente, il codice non saprei dirti.
L'ho scovato su:
Il tizio non è certamente il primo arrivato nel codificare in assembly: si chiama Walter Bright.
Dico questo perchè mi risulta che in passato abbia coadiuvato la Boeing inerentemente ai progetti degli apparati del controllo di volo di diversi aeroplani :AAAAH:
Considero quasi scontato il fatto che ci si possa ciecamente fidare

-
Totocellux ha scritto:
il concetto di sicuro non è recente, il codice non saprei dirti.L'ho scovato su:
Il tizio non è certamente il primo arrivato nel codificare in assembly: si chiama Walter Bright.
Dico questo perchè mi risulta che in passato abbia coadiuvato la Boeing inerentemente ai progetti degli apparati del controllo di volo di diversi aeroplani :AAAAH:
Considero quasi scontato il fatto che ci si possa ciecamente fidare

ah...lui ?
guarda questo... mi ha sempre fatto morire sto video....

[video=google;-7073020265668105471]http://video.google.com/videoplay?docid=-7073020265668105471&q=walter+bright&total=45&start=0&num=10&so=0&type=search&plindex=0 #
-
bonis62 ha scritto:
ah...lui ?guarda questo... mi ha sempre fatto morire sto video....

Walter Bright @ NWCPP: Advanced D Programming Language Features#

si, è lui

-
Totocellux ha scritto:
si, è lui

come dicevo...un pò spartano.... ma bravo

se vuoi approfondire l'argomento sul D
reputo questo sito eccellente : (5 stelle)
-
bonis62 ha scritto:
come dicevo...un pò spartano.... ma bravo
[..........]
..... soltanto?!
Comunque, direi che dovresti metterti sotto a lavorare: c'è ancora quel 6.x% di efficienza da racimolare nei confronti dell'uomo dai 4TB di appoggio

Rammenta che lui ha solo il Visual C, mentre hai dalla tua parte il signor Assembly

-

PrimeCores 2010 V 4.0.0 32Bit Diagnostic Benchmark Beta 2 - Release Date : 02/2010
Developer : Cristoforo Bonissone
In V. 4.0.0 Beta2 math routines has been completely rewritten.
In V. 4.0.0 Beta2 the routines are optimized for 32-bit system. (64Bit incoming soon)
In V. 4.0.0 Beta2 now supports real 8 cores (no longer uses virtual cores) completely user-selectables
In V. 4.0.0 (Final Version) will be reactivates the Save and Publication functions
In V. 4.0.0 (Final Version) will add a screen capture function
In V. 4.0.0 (Final Version) will be reactivates the System Information function
-
-

quoto Totocellux. Se non erro questo è solo un tool per la verifica dei vari core e non un bench vero e proprio, o sbaglio?
-
Ho cercato di inserire tutte le combinazioni possibili, se qualcuno intercetta qualche combinazione
non presente o non corretta, è pregato di segnalarmi in modo esatto la combinazione che manca o
che non funziona come dovuto, grazie

-

una immagine della versione in lavorazione...
-
Per favore, mi fate un veloce giro di beta testing ?
grazieee
http://www.xstreme.it/PrimeCores4_Beta3.zip

-
bonis62 ha scritto:
Per favore, mi fate un veloce giro di beta testing ?grazieee
http://www.xstreme.it/PrimeCores4_Beta3.zip

oggi sono a casa. appena finisce il conto che sta girando con ansys farò un pò di giri di prova su questa versione!!

-
-
sembra tutto OK

a parte che non rileva la corretta velocità della cpu, seppur azzeccando quella del bus speed.
PI:

Primi:

FP:

-
-
gear667 ha scritto:
i gruppi 1 - 4 lavorano correttamente in ogni modo ?
fammi il favore di testare i cores dal 05 al 08 singolarmente e poi insieme ( 5 6 7
, e segnalami quale configurazione ( singoli e di gruppo) presenta problemi) .... 
Ciao! Sembra che tu sia interessato a questa conversazione, ma non hai ancora un account.
Stanco di dover scorrere gli stessi post a ogni visita? Quando registri un account, tornerai sempre esattamente dove eri rimasto e potrai scegliere di essere avvisato delle nuove risposte (tramite email o notifica push). Potrai anche salvare segnalibri e votare i post per mostrare il tuo apprezzamento agli altri membri della comunità.
Con il tuo contributo, questo post potrebbe essere ancora migliore 💗
Registrati Accedi



