Domanda

Qualcuno ha esperienza di programmazione sia per Intel Math Kernel Library e la AMD Math Core Library ? Sto costruendo un personal computer per calcoli statistici ad alte prestazioni e sto discutendo sui componenti da acquistare. Un appello della biblioteca AMD Math Core è che è gratuito, ma io sono nel mondo accademico, quindi il MKL non è così costoso. Ma sarei interessato a sentire pensieri su:

  1. Quale fornisce un'API migliore?
  2. Che fornisce prestazioni migliori, in media, per dollaro, inclusi costi di licenza e hardware.
  3. AMCL-GPU è un fattore che dovrei considerare?
È stato utile?

Soluzione

Intel MKL e ACML hanno API simili ma MKL ha un set più ricco di funzionalità supportate tra cui BLAS (e CBLAS) / LAPACK / FFT / Vector e Statistical Math / Solutori diretti e iterativi sparsi / Sparse BLAS e così via. Intel MKL è anche ottimizzato per processori Intel e AMD e ha un forum utenti attivo a cui puoi rivolgersi per aiuto o guida. Una valutazione indipendente delle due biblioteche è pubblicata qui: ( http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html )

& # 8226; Shane Corder, Advanced Clustering, (portato anche da HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): & # 8220; Nei nostri recenti test e attraverso l'esperienza del mondo reale, abbiamo scoperto che i compilatori Intel e Intel Math Kernel Library (MKL) di solito fornire le migliori prestazioni. Invece di accontentarci del toolkit di Intel, abbiamo provato vari compilatori tra cui: Intel, compilatori GNU e Portland Group. Abbiamo anche testato varie librerie di algebra lineare tra cui: MKL, AMD Core Math Library (ACML) e libGOTO dell'Università del Texas. Tutti i test hanno dimostrato che siamo riusciti a ottenere le massime prestazioni utilizzando sia Intel Compilers che Intel Math Library - anche sul sistema AMD - quindi questi sono stati utilizzati come base dei nostri benchmark. & # 8221; [I test di benchmark hanno mostrato Nehalem X5550 a 4 core a 2,66 GHz a 74,0 GF contro Istanbul 2435 2,6 GHz a 99,4 GF; Istanbul solo il 34% più veloce nonostante il 50% in più di core]

Spero che questo aiuti.

Altri suggerimenti

In effetti, ci sono due versioni delle routine LAPACK in ACML. Quelli senza sottolineatura finale (_) sono le routine della versione C, che come ha detto Victor, non richiedono array di spazio di lavoro e puoi semplicemente passare valori invece di riferimenti per i parametri. Quelli con il carattere di sottolineatura tuttavia sono solo routine Fortran alla vaniglia. Esegui una "discarica / esportazioni" su libacml_dll.dll e vedrai.

Ho usato AMCL per le sue routine BLAS / LAPACK, quindi questo probabilmente non risponderà alla tua domanda, ma spero sia utile per qualcuno. Confrontandoli con BLAS / LAPACK alla vaniglia, le loro prestazioni sono state un fattore 2-3 migliore nel mio caso d'uso particolare. L'ho usato per matrici complesse non simmetriche dense, sia per soluzioni lineari che per calcoli di eigensystem. Dovresti sapere che le dichiarazioni di funzione sono non identiche alle routine di vaniglia. Ciò ha richiesto una notevole quantità di macro di preprocessore per consentirmi di passare liberamente tra i due. In particolare tutte le routine LAPACK in AMCL non richiedono array di lavoro. Questa è una grande comodità se AMCL è l'unica libreria che utilizzerai.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top