Virallinen: AMD vs Intel keskustelu- ja väittelyketju

  • Keskustelun aloittaja Keskustelun aloittaja Sampsa
  • Aloitettu Aloitettu
Ohjelma mallintaa 3D-kappaleita havainnoista ja se käyttää erittäin paljon epälineaarista optimointia ja matriisioperaatiota. Se ei julkisessa levityksessä koska olen laatinut sen tutkimuskäyttöön. Mutta samoihin päätelmiin päästään vertaamalla MKL:ää muihin vastaaviin lineaarialgebran kirjastoihin Intelin prosessorilla, esimerkiksi ATLAS tai OpenBLAS. Intelin optimoinnit ovat yksinkertaisesti toiselta planeetalta. AMD:n "vastaava" BLIS on hitaampi kuin muut geneeriset kirjastot.

Uskon kyllä että AMD kirii kunhan vain kääntäjäoptimoinnit, kernel- ja mikrokoodipäivitykset saadaan kohdalleen sitten joskus, mutta tässä vaiheessa on turha väittää että AMD olisi poikkeuksetta hyötykäytössä Inteliä parempi vaikka ohjelma olisikin hyvin säikeistyvä. Suoraan sanoen olen pettynyt, mutta pitihän tuota kokeilla kun työkoneeseen sai valita. Jos nyt voisi valita uudelleen, niin ottaisin kyllä Intelin vaikka vähemmällä ydinmäärällä.

Ei kai kukaan olekaan väittänyt AMD:n olevan poikkeuksetta parempi vaikka ohjelma säikeistyisi? On selvää ettei jokaisessa hyötykäytön marginaaliskenaariossa AMD ole välttämättä Inteliä parempi. Kuten ei ole myöskään kaikissa ikivanhoissa peleissä joiden optimoinnit on tehty jollekin tietylle Intelin prosessorille.

Isossa kuvassa marginaalitapaukset eivät onneksi paljoa vaikuta koska ovat marginaalitapauksia.
 
Ei kai kukaan olekaan väittänyt AMD:n olevan poikkeuksetta parempi vaikka ohjelma säikeistyisi? On selvää ettei jokaisessa hyötykäytön marginaaliskenaariossa AMD ole välttämättä Inteliä parempi. Kuten ei ole myöskään kaikissa ikivanhoissa peleissä joiden optimoinnit on tehty jollekin tietylle Intelin prosessorille.

Isossa kuvassa marginaalitapaukset eivät onneksi paljoa vaikuta koska ovat marginaalitapauksia.

Lineearialgebrakirjastojen puute ei ole mikään marginaalitapaus. Lähes kaikki tieteellinen laskenta tarvitsee kirjastoja, ja AMD:lle optimoituja kirjastoja tai kääntäjiä ei ole. Mutta ilmeisesti AMD:llä ei ole tähän resursseja, vaan julkaisee kaikki open sourcena ja olettaa yhteisön korjaavan tilanteen.
 
AMD on Inteliä jäljessä jokaisella tärkeällä osa-alueella, kertoohan sen jo senkin että ikivanha 4690K voittaa Ryzenit monessa pelissä, myös 2600k monessa pelissä kellotettuna.
:cigar::kippis:

Nyt puhut taas paskaa. AMD on Inteliä edellä monella osa-alueella, esimerkiksi nopeampi SMT ja crypto suorituskyky (OpenSSL esimerkiksi).

Ikivanha 4690K voittaa ainoastaan sen takia että testiasetelma oli tehty suosimaan sitä 4690K:ta. Mikäli siihen testiin olisi laitettu R7 1800X tai R5 1600X joissa molemmissa base kello on 3,6GHz eikä 3GHz kuten R7 1700, niin se 4690K olisi saanut selkään jokaisessa testissä.
Kyllähän sinun pitäisi tällainen asia ymmärtää kun sinä olet niiden kellojen perään huutamassa ihan jatkuvasti. Mutta sinisten lasien läpi kun sitä maailmaa tihrustaa niin sehän on selvää että tuollaista asiaa katsotaan läpi sormien koska se hyödyttää omaa agendaa.

Kellotettu 2600K tuskin voittaa monessakaan pelissä kellotettua Ryzenia, tai sitten pitää olla kellotettu 5,5GHz sillä 2600K:ssa alkaa olla jo sen verran heikompi IPC että 4GHz kellotettu Ryzen on aikalailla samalla viivalla kuin 5GHz kellotettu 2600K yhden ytimen suorituskyvyssä.

Mutta saathan sinä unelmoida, valheellisen tiedon levittämisen sensijaan voisit kyllä lopettaa.
 
Lineearialgebrakirjastojen puute ei ole mikään marginaalitapaus. Lähes kaikki tieteellinen laskenta tarvitsee kirjastoja, ja AMD:lle optimoituja kirjastoja tai kääntäjiä ei ole. Mutta ilmeisesti AMD:llä ei ole tähän resursseja, vaan julkaisee kaikki open sourcena ja olettaa yhteisön korjaavan tilanteen.

AMD voi olla sitä mieltä että tieteellinen laskenta hoidetaan pitkälti näytönohjaimilla tai AMD korjaa tuon ongelman myöhemmin. Suuressa kuvassa tuo on marginaalitapaus ja tällä hetkellä AMD hakee lähinnä massaa.
 
AMD voi olla sitä mieltä että tieteellinen laskenta hoidetaan pitkälti näytönohjaimilla tai AMD korjaa tuon ongelman myöhemmin.

Näytönohjaimilla tehtävä tieteellinen laskenta on marginaalitapaus, vain pieni osa kääntyy näytönohjaimelle sopivaan muotoon. Eipä silti AMD tilanne näytönohjainten hyötykäytössä ole yhtään parempi: Nvidian verrattuna AMD on marginaalissa ja työkalut paljon huonompia.
 
Näytönohjaimilla tehtävä tieteellinen laskenta on marginaalitapaus, vain pieni osa kääntyy näytönohjaimelle sopivaan muotoon. Eipä silti AMD tilanne näytönohjainten hyötykäytössä ole yhtään parempi: Nvidian verrattuna AMD on marginaalissa ja työkalut paljon huonompia.

Tieteellisessä käytössä "supertietokoneisiin" laitetaan aika paljon näytönohjaimia marginaaliseen laskentaan. Voi olla hyötykäytössä vähän sama homma kuin prosessoreissa. Nvidiaa pidetään "standardina" kuten Inteliä pidetään ja siksi Nvidia myy vaikkei edes olisi millään tavalla parempi.

Olen Ryzenistä ja siihen liittyvistä asioista lueskellut päivittäin ja tämä on ensimmäinen kerta kun joku moittii Ryzenin matikkakirjastoja. Joko luen vääriä asioita vääristä paikoista tai sitten kyseessä on marginaalinen tapaus. Veikkaisin jälkimmäistä.
 
Ikivanha 4690K voittaa ainoastaan sen takia että testiasetelma oli tehty suosimaan sitä 4690K:ta. Mikäli siihen testiin olisi laitettu R7 1800X tai R5 1600X joissa molemmissa base kello on 3,6GHz eikä 3GHz kuten R7 1700, niin se 4690K olisi saanut selkään jokaisessa testissä.
Kyllähän sinun pitäisi tällainen asia ymmärtää kun sinä olet niiden kellojen perään huutamassa ihan jatkuvasti.

Puhuinkin tärkeillä osa-alueilla Intel vie. Ja katsoppa tätä sivua ylemmäs, video on todisteena, että R5 1600X ei antanut sen kummemmin vastusta. Ja tuo on lapsellista selittelyä, että "tasaisilla kelloilla tulos olisi eri", kun tosi maailmassa kellot vaikuttaa tulokseen ja ei ole Intelin vika, että AMD:n kello tasot on lapsen kengissä Inteliin verrattuna jopa niin että monta vuotta vanha keskitason prossu vie uusimpia Ryzeneitä

:cigar:

Ja minä en ole valheellista tietoa levittänyt, nuo minun väitteet voi tarkistaa mm. monista youtube videoista (joita osan tänne jo ylempänä lisäsinkin). Et vain kestä punaisten lasien takaa sitä, että Ryzen ei pärjää peleissä edes ikivanhalle 4690k tai jossain peleissä kellotetulle 2600k :kippis:
 
Tieteellisessä käytössä "supertietokoneisiin" laitetaan aika paljon näytönohjaimia marginaaliseen laskentaan. Voi olla hyötykäytössä vähän sama homma kuin prosessoreissa. Nvidiaa pidetään "standardina" kuten Inteliä pidetään ja siksi Nvidia myy vaikkei edes olisi millään tavalla parempi.
OpenCL:n dokumentaatio ja ohjelmointi on ainakin ennen ollut CUDAa vaikeampaa; en tiedä onko asia parantunut viime aikoina. Ei ole mitenkään sattumaa että lähes kaikki näytönohjaimilla tehtävä tieteellinen laskenta käyttää Nvidian ohjaimia.
Olen Ryzenistä ja siihen liittyvistä asioista lueskellut päivittäin ja tämä on ensimmäinen kerta kun joku moittii Ryzenin matikkakirjastoja. Joko luen vääriä asioita vääristä paikoista tai sitten kyseessä on marginaalinen tapaus. Veikkaisin jälkimmäistä.
On hieman eri asia lukea asioista kuin tehdä niitä itse. Siinä mielessä olet kyllä oikeassa, AMD:n matikkakirjastoja ei moitita koska niitä ei ole.
 
Juuri siksi laitoin lainausmerkeissä "huono" ettei tarvitse keskustella siitä mikä se tarkka sanamuoto olikaan.
Eikö olisi kannattanut ennemminkin olla vääntelemättä muiden sanomisia!
Vai oletko siis ihan tosissaan, että
välttävä=huono?
Siihen kun ei lainausmerkit vaikuta!
 
Puhuinkin tärkeillä osa-alueilla Intel vie. Ja katsoppa tätä sivua ylemmäs, video on todisteena, että R5 1600X ei antanut sen kummemmin vastusta. Ja tuo on lapsellista selittelyä, että "tasaisilla kelloilla tulos olisi eri", kun tosi maailmassa kellot vaikuttaa tulokseen ja ei ole Intelin vika, että AMD:n kello tasot on lapsen kengissä Inteliin verrattuna jopa niin että monta vuotta vanha keskitason prossu vie uusimpia Ryzeneitä

:cigar:

Ja minä en ole valheellista tietoa levittänyt, nuo minun väitteet voi tarkistaa mm. monista youtube videoista (joita osan tänne jo ylempänä lisäsinkin). Et vain kestä punaisten lasien takaa sitä, että Ryzen ei pärjää peleissä edes ikivanhalle 4690k tai jossain peleissä kellotetulle 2600k :kippis:

Mistäs asti SMT suorituskyky ja crypto suorituskyky eivät ole olleet tärkeitä?

Ja on se aika erikoista että sinä postaat videoita joissa Ryzen muka häviää ikivanhoille Intelin prosessoreille peleissä.
Ihan mielenkiinnosta youtubesta otin "Ryzen vs." haulla ensimmäisen videon jossa verrattiin suunnilleen samanhintaiseen prosessoriin ja vastaan asettui 7600K


Tuossa videolla R5 1600X ja 7600K ovat käytännössä täysin tasoissa pelisuorituskyvyssä.
Käsittääkseni 7600K:n pitäisi olla jonkin verran parempi kuin 4690K. Ilmeisesti se on kuitenkin sellainen jumalprosessori että se pieksee myös Intelin uudemmat prosessorit.

Vai olisiko käynyt niin että sinä olet ihan etsimällä etsinyt sellaisia videoita joissa se sinun vihaamasi Ryzen näyttää mahdollisimman huonolta? 6 peliä testattu ja 3:ssa Intel oli parempi ja 3:ssa Ryzen, miten siitä voi joku vetää sellaisen johtopäätöksen että Intel vie? :D Olet sinä kyllä melkoinen hupiukko.

Tässä vielä toinen video joka näyttää ihan samaa eli R5 1600X ja 7600K on pelikäytössä ihan tasoissa.


Ja huvittavinta tässä on se että sinun postaamallasi videolla kaveri jopa suosittelee R5 1600X, miten sinulle nyt tuollainen lipsahdus pääsi käymään? :D
 
AMD CPU Libraries - AMD Eli mikään listassa olevista kirjastoista ei ole AMD:n matikkakirjasto?

BLIS on BLAS "yhteensopiva" (=näyttäisi antavan jossain tapauksessa eri tuloksia kuin muut kirjastot), hitaampi kuin yleiskirjastot joita ei ole edes optimoitu AMD:lle.
LibFlame toteuttaa jotain LAPACK-rutiineita, mutta ei kuitenkaan kaikkia. Ei optimoitu Zenille, Teksasin yliopiston ylläpitämä, mitä tekemistä tällä on AMD:n kanssa?

LibM on AMD:n jokin peruskirjasto, vaatii funktiokutsujen korvaamisen kirjaston omilla funktioilla. Ei optimoitu Zenille?

Intelin kanssa tarvitsee vain ladata MLK ja linkittää se oman ohjelmakoodin kanssa ja kaikki toimii automaattisesti.
 
Mistäs asti SMT suorituskyky ja crypto suorituskyky eivät ole olleet tärkeitä?

Ja on se aika erikoista että sinä postaat videoita joissa Ryzen muka häviää ikivanhoille Intelin prosessoreille peleissä.
Ihan mielenkiinnosta youtubesta otin "Ryzen vs." haulla ensimmäisen videon jossa verrattiin suunnilleen samanhintaiseen prosessoriin ja vastaan asettui 7600K


Tuossa videolla R5 1600X ja 7600K ovat käytännössä täysin tasoissa pelisuorituskyvyssä.
Käsittääkseni 7600K:n pitäisi olla jonkin verran parempi kuin 4690K. Ilmeisesti se on kuitenkin sellainen jumalprosessori että se pieksee myös Intelin uudemmat prosessorit.

Vai olisiko käynyt niin että sinä olet ihan etsimällä etsinyt sellaisia videoita joissa se sinun vihaamasi Ryzen näyttää mahdollisimman huonolta? 6 peliä testattu ja 3:ssa Intel oli parempi ja 3:ssa Ryzen, miten siitä voi joku vetää sellaisen johtopäätöksen että Intel vie? :D Olet sinä kyllä melkoinen hupiukko.

Tässä vielä toinen video joka näyttää ihan samaa eli R5 1600X ja 7600K on pelikäytössä ihan tasoissa.


Ja huvittavinta tässä on se että sinun postaamallasi videolla kaveri jopa suosittelee R5 1600X, miten sinulle nyt tuollainen lipsahdus pääsi käymään? :D

i5-8400 maksaa n200€ eli 1600 verran ja on nopeampi useassa pelissä.Ainoa ero taitaa olla emojen hinnassa intelin emojen ollessa kalliimpia ja siinä että sieltä on tulossa zen+/zen2 jotka käy am4 emoihin kun taas intelin seuraava prossu vaatinee uuden emon.Tota ei tosin kelloteta mutta eipä pahemmin kelloteta 1600/1600x.:(
 
Viimeksi muokattu:
Ohjelma mallintaa 3D-kappaleita havainnoista ja se käyttää erittäin paljon epälineaarista optimointia ja matriisioperaatiota. Se ei julkisessa levityksessä koska olen laatinut sen tutkimuskäyttöön. Mutta samoihin päätelmiin päästään vertaamalla MKL:ää muihin vastaaviin lineaarialgebran kirjastoihin Intelin prosessorilla, esimerkiksi ATLAS tai OpenBLAS. Intelin optimoinnit ovat yksinkertaisesti toiselta planeetalta. AMD:n "vastaava" BLIS on hitaampi kuin muut geneeriset kirjastot.

Uskon kyllä että AMD kirii kunhan vain kääntäjäoptimoinnit, kernel- ja mikrokoodipäivitykset saadaan kohdalleen sitten joskus, mutta tässä vaiheessa on turha väittää että AMD olisi poikkeuksetta hyötykäytössä Inteliä parempi vaikka ohjelma olisikin hyvin säikeistyvä. Suoraan sanoen olen pettynyt, mutta pitihän tuota kokeilla kun työkoneeseen sai valita. Jos nyt voisi valita uudelleen, niin ottaisin kyllä Intelin vaikka vähemmällä ydinmäärällä.

Tuollaisessa matriisinmurskauksessa Intelin tuplasti leveämmistä SIMD-yksiköistä saadaan melkein kaikki hyöty irti, eli hyvinkään optimoidulla koodilla Zenillä ei saada tuollaisella koodilla läheskään samaa ydinkohtaista suorituskykyä kuin Intelin Well- tai Lake- sarjan prosessoreilta.

Mutta: Et kai laske asioita 64-bittisillä doubleilla? Se lienee tarkkuuden kannalta overkilliä, ja hidastanee kaiken n. puoleen verrattuna 32-bittisiin floatteihin.

Lisäksi tuollainen myös vaikuttaa koodilta, jossa se numeronmurskaus kannattaisi tehdä GPUlla, eikä CPUlla.

Ja lisäksi:

Vertasin 16-ytimistä threadripperiä 4GHz kelloilla pyörivään 5960X:ään

Ohjelma säikeistyy lähes täydellisesti, ja 30:lla säikeellä Intel oli nopeampi (Intelillä ajettiin 8 säiettä kerralla, AMD:llä 16)

Miten rajoitat nuo ajossa olevat säiemäärät?

Sekä zenissä että intelin nykyprossuissa on SMT, ja ne pystyvät ajamaan kahta säiettä/ydin, ja kun molemmat virtuaaliytimet on työllistetty, kokonaissuorituskyvyn pitäisi kyllä olla yleensä selvästi parempi kuin että rajoitetaan yhteen säikeeseen/fyysinen ydin.
 
Viimeksi muokattu:
Puhuinkin tärkeillä osa-alueilla Intel vie. Ja katsoppa tätä sivua ylemmäs, video on todisteena, että R5 1600X ei antanut sen kummemmin vastusta. Ja tuo on lapsellista selittelyä, että "tasaisilla kelloilla tulos olisi eri", kun tosi maailmassa kellot vaikuttaa tulokseen ja ei ole Intelin vika, että AMD:n kello tasot on lapsen kengissä Inteliin verrattuna jopa niin että monta vuotta vanha keskitason prossu vie uusimpia Ryzeneitä

Jatkuvasti FUDia levität täällä. Nyt se tieteellinen laskenta on ilmeisesti hyvinkin tärkeää? Hetki sitten pelaaminen oli se tärkein asia mitä voi tehdä ja koska ryzen oli pari fps jäljessä, niin se on paska?

@Johan_V voisi antaa jotain konkreettista? Muuten vaikka tämä benchmarkki on validimpi jossa Intteli ottaa kuokkaan:

Ryzen Threadripper: Scientific & Engineering Computations, & HPC Performance

Parhaillaankin menee duunihommat 3d/video-videopuolella nopeammin ja halvemmalla kuin inttelillä. Mut kaipa tää Ryzen on huono kerta täällä sanotaan
 
[offtopic]

OpenCL:n dokumentaatio ja ohjelmointi on ainakin ennen ollut CUDAa vaikeampaa; en tiedä onko asia parantunut viime aikoina. Ei ole mitenkään sattumaa että lähes kaikki näytönohjaimilla tehtävä tieteellinen laskenta käyttää Nvidian ohjaimia.

Ei sattumaa vaan enemmänkin nVidian onnistunutta markkinointia, sekä sitä että kun asia joskus on jotenkin niin luullaan että se on ikuisesti niin.

Koodaamalla CUDAa efektiivisesti lukitsee itsensä yhden valmistajan tuotteisiin ja sen armoille. Jos koodia kirjoitetaan yhtään pidemmän tähtäimen ylläpidettävyys mielessä, järkevämpää on käyttää hiukan enemmän aikaa siihen että koodaa sen yleisellä kaikkien tukemalla standardilla (OpenCL).

Erityisesti kun AMDn piirit on jo monta vuotta olleet selvästi nvidiaa edellä GPGPU-käytössä suorituskyky-hinta-suhteessa(koska nVidia on voinut paremman pelisuorituskyvyn ansiosta hinnoitella piirinsä ylemmäs), CUDAa käyttämällä lukitsee itsensä ulos hinta-suorituskyky-suhteeltaan parhaan raudan käyttämisestä.

[/offtopic]
 
Tuollaisessa matriisinmurskauksessa Intelin tuplasti leveämmistä SIMD-yksiköistä saadaan melkein kaikki hyöty irti, eli hyvinkään optimoidulla koodilla Zenillä ei saada tuollaisella koodilla läheskään samaa ydinkohtaista suorituskykyä kuin Intelin Well- tai Lake- sarjan prosessoreilta.

Mutta: Et kai laske asioita 64-bittisillä doubleilla? Se lienee tarkkuuden kannalta overkilliä, ja hidastanee kaiken n. puoleen verrattuna 32-bittisiin floatteihin.

Lisäksi tuollainen myös vaikuttaa koodilta, jossa se numeronmurskaus kannattaisi tehdä GPUlla, eikä CPUlla.
DP tarkkuus tarvitaan, koska iteraatiossa floattien tarkkuus ei yksinkertaisesti riitä.
GPU:lle koodia ei voi siirtää koska matriisit ovat liian isoja ja mahdollinen nopeusetu hukataan muistikopiointeihin.
Miten rajoitat nuo ajossa olevat säiemäärät?

Sekä zenissä että intelin nykyprossuissa on SMT, ja ne pystyvät ajamaan kahta säiettä/ydin, ja kun molemmat virtuaaliytimet on työllistetty, kokonaissuorituskyvyn pitäisi kyllä olla yleensä selvästi parempi kuin että rajoitetaan yhteen säikeeseen/fyysinen ydin.

OpenMP hoitaa tuon automaattisesti. Hyperthreading ei tuo mitään etua tässä tapauksessa, joten 1 säie per ydin toimii parhaiten.

@Johan_V voisi antaa jotain konkreettista? Muuten vaikka tämä benchmarkki on validimpi jossa Intteli ottaa kuokkaan:

Ryzen Threadripper: Scientific & Engineering Computations, & HPC Performance

Parhaillaankin menee duunihommat 3d/video-videopuolella nopeammin ja halvemmalla kuin inttelillä. Mut kaipa tää Ryzen on huono kerta täällä sanotaan

Noissa testeissä ei ole käytetty Intelin omaa MKL-kirjastoa. Kuten jo aiemmin sanoin, Intelin omat optimoinnit ovat aivan eri luokkaa. Jos verrataan jotain yleistä lineaarialgebrakirjastoa (e.g. OpenBLAS, ATLAS) niin AMD:n ja Intelin suorityskyky ovat lähellä toisiaan ja AMD todennäköisesti menee ohi suuremman ydinmäärän takia.
Mutta jos verrataan Intelin MKL vs mikä tahansa muu niin Intel on ylivoimainen. En väittänyt että AMD olisi laitteistotasolla varsinaisesti huonompi kuin Intel, vaan pointtini oli että optimoitujen kääntäjien ja kirjastojen puute tekee AMD:sta huonomman tyypilliseen tieteelliseen laskentaan.

Testasin juuri äsken AMD:n sivuillaan mainostamaa BLIS-kirjastoa Zen-optimoinneilla. Threadripperillä laskenta antaa muutaman kierroksen jälkeen Nan, vaikka muut kirjastot laskevat nätisti loppuun saakka.

[Offtopic]
[offtopic]

Ei sattumaa vaan enemmänkin nVidian onnistunutta markkinointia, sekä sitä että kun asia joskus on jotenkin niin luullaan että se on ikuisesti niin.

Koodaamalla CUDAa efektiivisesti lukitsee itsensä yhden valmistajan tuotteisiin ja sen armoille. Jos koodia kirjoitetaan yhtään pidemmän tähtäimen ylläpidettävyys mielessä, järkevämpää on käyttää hiukan enemmän aikaa siihen että koodaa sen yleisellä kaikkien tukemalla standardilla (OpenCL).

Erityisesti kun AMDn piirit on jo monta vuotta olleet selvästi nvidiaa edellä GPGPU-käytössä suorituskyky-hinta-suhteessa(koska nVidia on voinut paremman pelisuorituskyvyn ansiosta hinnoitella piirinsä ylemmäs), CUDAa käyttämällä lukitsee itsensä ulos hinta-suorituskyky-suhteeltaan parhaan raudan käyttämisestä.

[/offtopic]

AMD:n rauta voi olla parempaa laskentakäyttöön, mutta AMD:llä on aina ollut ongelmia softapuolen kanssa. En tiedä missä määrin tilanne on parantanut muutaman viimeisen vuoden aikana, mutta ainakin Linux-puolella tuli vannottua että ei koskaan enää AMD:n kortteja.

Vaikka CUDAa käyttäessä lukitsee itsensä nvidiaan, niin samalla tavalla OpenCL:ää käyttäessä käytännössä lukitsee itsensä AMD:hen, sillä nvidian openCL suorityskyky ei ainakaan ennen ollut yhtä hyvä kuin Cudalla.
Suorityskykyoptimoinnit OpenCL:llä ovat hankalampia kuin CUDAlla juuri softan vuoksi. Oman käsitykseni mukaan myös OpenCL vaatii huomattavasti enemmän matalan tason säätämistä kuin CUDA hyvän suorityskyvyn saavuttamiseksi, mutta voi olla että tilanne on parantunut viime vuosina.
 
hkultala sanoi:
Miten rajoitat nuo ajossa olevat säiemäärät?

Sekä zenissä että intelin nykyprossuissa on SMT, ja ne pystyvät ajamaan kahta säiettä/ydin, ja kun molemmat virtuaaliytimet on työllistetty, kokonaissuorituskyvyn pitäisi kyllä olla yleensä selvästi parempi kuin että rajoitetaan yhteen säikeeseen/fyysinen ydin.

OpenMP hoitaa tuon automaattisesti.

Käsittääkseni OpenMP:n pitäisi kyllä oletuksena käyttää kaikkia virtuaaliytimiä, ellei sitä erikseen rajoiteta.

Hyperthreading ei tuo mitään etua tässä tapauksessa, joten 1 säie per ydin toimii parhaiten.

Tuollaisessa massiivisesti rinnakkaisessa kamassa SMT kyllä hyvin todennäköisesti toisi selvän hyödyn, ellei softasi ole täysin muistikaistariippuvainen tai aktiivinen working set ole juuri sen kokoinen että se mahtuu yhden säikeen osalta L1D-kakkuun mutta kahden säikeen osalta ei.

Nykyprossujen FPU-tehon optimaalinen hyödyntäminen yhdestä säikeestä on nimittäin aika vaikeaa, kun FPU:n käskyillä on tyypillisesti joku n. 4 kellojakson viive. Tarkoittaa, että se edellisen käskyn tulosta käyttävä seuraava käsky voidaan suorittaa vasta 4 kellojaksoa myöhemmin. Tässä neljän kellojakson ajassa pystytään suorittamaan esim 8 FMA-käskyä, koska nykyprossuilla on liukulukuyksikössä 2 FMA-yksikköä. Tarvii olla aika monta loopin iteraatiota yhtä aikaa suorituksessa, ja jos loopin iteraatioden välillä on datariippuvuuksia, kuten esim. pistetulossa(joka esiintyy myös matriisikertolaksun ytimessä), menee hankalaksi.
 
[offtopic]

Vaikka CUDAa käyttäessä lukitsee itsensä nvidiaan, niin samalla tavalla OpenCL:ää käyttäessä käytännössä lukitsee itsensä AMD:hen, sillä nvidian openCL suorityskyky ei ainakaan ennen ollut yhtä hyvä kuin Cudalla.

Eikä lukitse. OpenCL on avoin standardi, jota tukee kymmenet firmat, ja se toimii myös sillä nVidialla.

Maailmassa on ziljoona mielenkiintoista pientä manycore-prosessoria, mobiili-GPUta yms. kiihdytintä jotka tukevat OpenCLää. Ja osa näistä verkottuu yhteen supertietokone-luokan suorituskykyyn asti.

ja nVidia kääntää OpenCL-koodin ihan samalla kääntäjällä kuin CUDA-koodin.

Ja jos nVidian OpenCL-suorituskyky on huonompi kuin CUDA-suorituskyky, se on joko
1) nVidian perseilyä CUDAn promotoimiseksi
2) Sitä että vanha versio OpenCL:stä ei ole tukenut jotain ominaisuutta jota CUDA tukee joka on joissain benchmarkeissa mahdollistanut nVidialle paremman suorituskyvyn. Tämä ei yleisty softiin, jotka eivät kyseistä ominaisuutta käytä, eikä tilanteeseen, jossa käytetään uudempaa OpenCL:ää joka tukee samaa ominaisuutta.

Väittäisin näitä "CUDA on nopeampi kuin OpenCL"-juttuja siis lähinnä mutuiluksi jonkun muinaishistorian perusteella.

Tosin, saattaa olla että nVidia ylipäätään vieläkin tukee vain muinaista versioita OpenCL:stä.

[/offtopic]
 
AMD:n rauta voi olla parempaa laskentakäyttöön, mutta AMD:llä on aina ollut ongelmia softapuolen kanssa. En tiedä missä määrin tilanne on parantanut muutaman viimeisen vuoden aikana, mutta ainakin Linux-puolella tuli vannottua että ei koskaan enää AMD:n kortteja.

Noh, juuri tuossa Linus hyväksyi AMD:n näytönohjain ajurit natiivisti kerneliin että sellaista kehitystä tapahtunut.
Samaa nVidian puolelta saadaan odottaa ja kauan jos tulee tapahtumaan koskaan.
 
Noh, juuri tuossa Linus hyväksyi AMD:n näytönohjain ajurit natiivisti kerneliin että sellaista kehitystä tapahtunut.
Samaa nVidian puolelta saadaan odottaa ja kauan jos tulee tapahtumaan koskaan.
Ja muutenkin erikoista kuulla tällaista hehkutusta suljetuille ratkaisuille nimenomaan tieteellisen sektorin suusta jossa, ainakin kun itse aikanaan yliopistolla tallustin, kannustettiin ajattelemaan täysin päinvastaisesti. Toki tällä hetkellä tilanne on Intelin ja Nvidian käsissä, mutta sen paremmalla syyllä tiedemaailman tulisi suosia tiedon, koodin ja protokollien avoimuutta. Itse uskon kyllä että AMD:n suunta on oikea ja voittaa pitkässä juoksussa. Natiivit ajurit Linukan kerneliin on iso harppaus ja OpenCL:t, Vulkanit yms, tulevat kyllä ajan kanssa syömään suljetut kilpailijansa pois. Koska Zen tullut vasta hiljattain, niin optimointeja saadaan hetki odottaa, mutta nyt kun on AMD on taas kuvioissa mukana, niin aivan varmasti niitä tulee alueelle kuin alueelle.
 
Käsittääkseni OpenMP:n pitäisi kyllä oletuksena käyttää kaikkia virtuaaliytimiä, ellei sitä erikseen rajoiteta.
Asetin säikeiden määräksi fyysisten ytimien lukumäärän ja affinityn fyysisille ytimille, mutta loput säädöt jätin oletuksille.

Tuollaisessa massiivisesti rinnakkaisessa kamassa SMT kyllä hyvin todennäköisesti toisi selvän hyödyn, ellei softasi ole täysin muistikaistariippuvainen tai aktiivinen working set ole juuri sen kokoinen että se mahtuu yhden säikeen osalta L1D-kakkuun mutta kahden säikeen osalta ei.

Nykyprossujen FPU-tehon optimaalinen hyödyntäminen yhdestä säikeestä on nimittäin aika vaikeaa, kun FPU:n käskyillä on tyypillisesti joku n. 4 kellojakson viive. Tarkoittaa, että se edellisen käskyn tulosta käyttävä seuraava käsky voidaan suorittaa vasta 4 kellojaksoa myöhemmin. Tässä neljän kellojakson ajassa pystytään suorittamaan esim 8 FMA-käskyä, koska nykyprossuilla on liukulukuyksikössä 2 FMA-yksikköä. Tarvii olla aika monta loopin iteraatiota yhtä aikaa suorituksessa, ja jos loopin iteraatioden välillä on datariippuvuuksia, kuten esim. pistetulossa(joka esiintyy myös matriisikertolaksun ytimessä), menee hankalaksi.

Ymmärtääkseni tyypillisillä lineearialgebran laskuilla ei hyperthreading tuo juuri mitään etua. Jossain kirjastoissa hyperthreading jopa suositellaan poistamaan käytöstä, jotta säikeet ohjautuvat fyysisille ytimille. Omat kokemukset tukevat tätä, säikeitten lukumäärä ei lisää suorityskykyä kun mennään yli fyysisten ytimien lukumäärän.
 
[offtopic]

Asetin säikeiden määräksi fyysisten ytimien lukumäärän ja affinityn fyysisille ytimille, mutta loput säädöt jätin oletuksille.

Ymmärtääkseni tyypillisillä lineearialgebran laskuilla ei hyperthreading tuo juuri mitään etua. Jossain kirjastoissa hyperthreading jopa suositellaan poistamaan käytöstä, jotta säikeet ohjautuvat fyysisille ytimille.

Nämä ohjeet on tyypillisesti vuodelta miekka ja kypärä, kun prosessorina oli Pentium 4 jossa oli onnettoman pieni 8 kiB L1D-välimuisti, jolla kahden säikeen ajaminen usein aiheutti välimuisteissa ylimääräistä ping poing-efektiä(selvä hidastus), ja prosessori vielä replayasi käskyjä aina kakkuhudin tapauksessa, jolloin laskentayksiköiden suorituskapasiteettia myös haaskattiin eikä sitä riittänyt molemmille säikeille.

Nykyprossuilla suorituskykyhyöty SMT:stä on ihan eri tasolla kuin Pentium 4lla, kun L1D-välimuistia on 4 kertaa enemmän, replay-mekanismia ei ole ja laskentayksiköitä on enemmän.

Omat kokemukset tukevat tätä, säikeitten lukumäärä ei lisää suorityskykyä kun mennään yli fyysisten ytimien lukumäärän.

Omat kokemukset millä?

Ettei ole tullut nyt jotain mokaa? Että olet esim. mennyt BIOSista disabloimaan sen SMT:n noudattaaksesi niitä P4-aikaisia ohjeita?

[/offtopic]
 
OpenCL:n dokumentaatio ja ohjelmointi on ainakin ennen ollut CUDAa vaikeampaa; en tiedä onko asia parantunut viime aikoina. Ei ole mitenkään sattumaa että lähes kaikki näytönohjaimilla tehtävä tieteellinen laskenta käyttää Nvidian ohjaimia.

Kuten hkultala ansiokkaasti selvitti, nuo "vaikeampi tehdä ilman Cudaa"-väitteet kuuluvat kastiin uskomukset jotka joskus (ehkä) pitivät paikkaansa. Ei sekään ole sattumaa että konsolit ja Applen "työkoneet" käyttävät enimmäkseen AMD:ta. Vastaava tilannehan oli 15 vuotta sitten. AMD:n prosessorit voittivat Intelit about kaikessa, silti palvelimissa oli enimmäkseen Inteliä.

On hieman eri asia lukea asioista kuin tehdä niitä itse. Siinä mielessä olet kyllä oikeassa, AMD:n matikkakirjastoja ei moitita koska niitä ei ole.

Kannattaa käyttää jotain valmista mikäli oma tekele ei toimi kunnolla. Tai tehdä oma tekele kunnolla.

Eikö olisi kannattanut ennemminkin olla vääntelemättä muiden sanomisia!
Vai oletko siis ihan tosissaan, että
välttävä=huono?
Siihen kun ei lainausmerkit vaikuta!

Lue vielä uusiksi se mitä lainasin. Siinä ei sanota missään kohtaa sanaa välttävä.

Puhuinkin tärkeillä osa-alueilla Intel vie. Ja katsoppa tätä sivua ylemmäs, video on todisteena, että R5 1600X ei antanut sen kummemmin vastusta. Ja tuo on lapsellista selittelyä, että "tasaisilla kelloilla tulos olisi eri", kun tosi maailmassa kellot vaikuttaa tulokseen ja ei ole Intelin vika, että AMD:n kello tasot on lapsen kengissä Inteliin verrattuna jopa niin että monta vuotta vanha keskitason prossu vie uusimpia Ryzeneitä

Intelin toiseksi kallein työpöytäprosessori = keskitasoa :facepalm:
 
Viimeksi muokattu:
Omat kokemukset millä?

Ettei ole tullut nyt jotain mokaa? Että olet esim. mennyt BIOSista disabloimaan sen SMT:n noudattaaksesi niitä P4-aikaisia ohjeita?

[/offtopic]
Koneina Threadripper 1950x Asrock x399 Taichi emolevy ja 96GB (3000 Mhz CL15) muistia
i7-5960x (4Ghz) Asus deluxe x99 emolevy, 64GB muistia
Tulokset:
Intel 8 threads icc+mkl 7m30s
Intel 16 threads icc+mkl 6m27s
Intel 8 threads gcc+OpenBLAS 11m20s [-02 -ffast-math]
Intel 8 threads gcc+OpenBLAS 12m25s [-O3]
Intel 8 threads gcc+mkl 8m12s

AMD 16 threads gcc+OpenBLAS 14m38s
AMD 32 threads gcc+OpenBLAS 13m42s

Affinity asetettu niin että fyysiset ytimet täytetään ensin. Kuten näkyy hyperthreading vaikutus on varsin minimaalinen. Nämä ovat vain yhdestä ajosta, joten erot voivat vielä tasoittua. Kerralla käytössä on 30 säiettä, joten AMD:n ytimet eivät tule aivan täyteen. Tästä näkyy myös että Intelin icc+mkl yhdistelmä on täysin ylivoimainen verrattuna OpenBLASiin. Muistikäyttö AMD:llä oli noin 45GB.
 
Koneina Threadripper 1950x Asrock x399 Taichi emolevy ja 96GB (3000 Mhz CL15) muistia
i7-5960x (4Ghz) Asus deluxe x99 emolevy, 64GB muistia
Tulokset:
Intel 8 threads icc+mkl 7m30s
Intel 16 threads icc+mkl 6m27s
Intel 8 threads gcc+OpenBLAS 11m20s [-02 -ffast-math]
Intel 8 threads gcc+OpenBLAS 12m25s [-O3]
Intel 8 threads gcc+mkl 8m12s

AMD 16 threads gcc+OpenBLAS 14m38s
AMD 32 threads gcc+OpenBLAS 13m42s

Affinity asetettu niin että fyysiset ytimet täytetään ensin. Kuten näkyy hyperthreading vaikutus on varsin minimaalinen. Nämä ovat vain yhdestä ajosta, joten erot voivat vielä tasoittua. Kerralla käytössä on 30 säiettä, joten AMD:n ytimet eivät tule aivan täyteen. Tästä näkyy myös että Intelin icc+mkl yhdistelmä on täysin ylivoimainen verrattuna OpenBLASiin. Muistikäyttö AMD:llä oli noin 45GB.

Noniin, eli siis SMT nopeutti näissä sekä Intelillä että AMDllä. 6:27 on nopeampi kuin 7:30 ja 13:42 on nopeampi kuin 14:38.

Ja onhan tuossa intelillä 16% nopeutus tuosta SMT:stä, ei se ihan olematon nopeutus ole.

AMDn 7% nopeutus toki on melko pieni, mutta edelleen nopeutus. Ei mitään järkeä jättää tätä hyödyntämättä.


Intelin AMDtä suurempi hyöty SMTstä tässä selittynee sillä, että AMD kun AMD joutuu pilkkomaan 256-bittiset AVX-käskyt kahteen osaan, FPUn utilisaatioaste yhdellä säikeellä on AMDllä suurempi, ja on vähemmän idlaavia yksiköitä, joita toinen säie voi hyödyntää häiritsemättä ensimmäistä säiettä.



Mutta jos tuota softaa ajellaan paljon ja sen nopeutus on oikeasti tärkeätä, sitten kannattanee prosessoriksi hankkia >10-ytiminen Skylake-X (core i9, vähintään 7920X). Niissä on AVX-512 kahdella 512-bittisellä FMA-yksiköllä, eli siis taas tuplattu tuo numeronmurskausnopeus/ydin. (vähempiytimisissä skylake-X:ssä 512-bittisiä FMA-yksiköitä on vain 1/ydin)
 
Viimeksi muokattu:
Kuten näkyy hyperthreading vaikutus on varsin minimaalinen.

Tuota millaisia odotuksia sinulla siitä HT tehosta oikein on?

Best case skenariossa Intelin HT antaa noin 20-25% oikean coren tehosta, AMD:llä vastaava luku on 25-30%
Ja kuten hkultala tuossa laski niin se Intel hyötyi 16% siitä HT:stä joka on jo ihan kohtalainen lisä.
 
Lue vielä uusiksi se mitä lainasin. Siinä ei sanota missään kohtaa sanaa välttävä.

Vielä vähemmän ko lainauksessa puhutaan huonosta. Alunperäisessä viestissä olen todennut zenin olevan perusteet esittäen välttävä julkaisu. Ja kannatta hahmottaa, että välttävän ja huonon välillä on hyvin selkeä ero, eli elä koita väännellä ja puhua soopaa, mitä on sanottu.
 
´
Se varmaan länkytti siitä 4690K:sta ja 2600K:sta edelleen tuossa.

Sitä minäkin tarkoitin.

Vielä vähemmän ko lainauksessa puhutaan huonosta. Alunperäisessä viestissä olen todennut zenin olevan perusteet esittäen välttävä julkaisu. Ja kannatta hahmottaa, että välttävän ja huonon välillä on hyvin selkeä ero, eli elä koita väännellä ja puhua soopaa, mitä on sanottu.

Kannattaa hahmottaa mitä lainasin ja mitä siihen vastasin eikä takertua yhteen sanaan. Joka ei edes ollut huono vaan "huono".
 
Vielä vähemmän ko lainauksessa puhutaan huonosta. Alunperäisessä viestissä olen todennut zenin olevan perusteet esittäen välttävä julkaisu. Ja kannatta hahmottaa, että välttävän ja huonon välillä on hyvin selkeä ero, eli elä koita väännellä ja puhua soopaa, mitä on sanottu.
No tuolla skaalalla ja jotakuinkin kaikki merkittävät globaalit netin arvostelusaitit huomioon ottaen, niin uusin Tesla on siinä välttävän rajalla, Ryzen on joo välttävä, Applella menee välttävästi ja voisihan sitä kokeilla sanoa eukollekin että joo oli ihan välttävä suoritus (vaikka henki siinä varmaan menisi). :)
 
No sano sitten se eikä mitään turhaa pyörittelyä.

Nopeasti katsoen 5.8GHz käyttäen 8-ydintä ja 16-säiettä? Mutta minusta on aika turhaa etsiä tuollaisia "miten paljon maksimissaan voi prosessoria ylikellottaa". Tosin jokainen tyylillään.. ..toivottavasti olet onnellinen tiedosta. Itse en tuolla tiedolla mitään tee paitsi ehkä voin todeta että Intelillä ei taida olla kiveä mikä kellottuu yhtä hyvin 8-ytimellä ja 16-säikeellä? :smoke:

Edit: jos mietit asiaa Coffee Lakea ajatellen (eli 6-ydin/12-säie) niin siinä päästään näköjään 5.9GHz 1600X prosessorilla. Mutta en edelleenkään tiedä mitä nyt tavalliset henkilöt tekevät tiedolla?

Tässä vielä videota tuosta:
 
Viimeksi muokattu:
Noniin, eli siis SMT nopeutti näissä sekä Intelillä että AMDllä. 6:27 on nopeampi kuin 7:30 ja 13:42 on nopeampi kuin 14:38.

Ja onhan tuossa intelillä 16% nopeutus tuosta SMT:stä, ei se ihan olematon nopeutus ole.

AMDn 7% nopeutus toki on melko pieni, mutta edelleen nopeutus. Ei mitään järkeä jättää tätä hyödyntämättä.

Olet kyllä oikeassa. Alkuperäinen pointtini oli kuitenkin se, että on ihmeellistä miten Intel pystyy omalla MKL-paketillaan saavuttamaan noin suuren nopeushyödyn verrattuna muihin, esimerkiksi tuossa OpenBLASiin verrattuna (7m30s vs 11m20s), joka on kuitenkin käännetty täysillä prosessorikohtaisilla optimoinneilla. On sääli ettei AMD:llä ole mitään vastaavaa, kaikki on vain julkaistu open-sourcena ajatuksena ilmeisesti että yhteisö tekee raskaan työn ja AMD vain lisää jonkun patchin silloin tällöin. Kuten tuossa aiemmin totesin, AMD:n open source BLIS kirjasto on lähes käyttökelvoton. Olisi mielenkiintoista nähdä kuinka paljon suorituskykyä AMD pystyisi puristamaan prosessorista irti, mutta nähtävästi AMD:llä ei ole resursseja eikä mielenkiintoa kehittää kunnollisia kirjastoja.
 
Intel on prossujen Apple, ilman kilpailua intel voisi käyttää asemaansa väärin.

AMD tuo lisää kilpailua, joka on erittäin hyvä kuluttajille.

Ostamalla tuotteita, tuette jatkossa kehitystä ja uusia innovatioita.
 
Viimeksi muokattu:
AMD:n open source BLIS kirjasto on lähes käyttökelvoton. Olisi mielenkiintoista nähdä kuinka paljon suorituskykyä AMD pystyisi puristamaan prosessorista irti, mutta nähtävästi AMD:llä ei ole resursseja eikä mielenkiintoa kehittää kunnollisia kirjastoja.

Oletkos tähän tutustunut?
BLIS - GPUOpen

AMD pistää aika paljon paukkuja tuonne GPU puolelle kehitykseen, käsittääkseni hiljattain palkkasivat jonkinverran väkeä työskentelemään pelkästään ROCm:n kanssa.

Ilmeisesti AMD visioi että yhä enemmän GPU:lla tullaan laskentaa tekemään ja vegan tuoma HBCC esimerkiksi voisi auttaa nimenomaan sellaisessa tilanteessa missä GPU:n oma muisti ei riitä sille työlle kun saumattomasti voidaan käyttää järjestelmän muistia sen kortin oman muistin jatkeena jolloin se kopiointi josta aiemmin puhuit ei välttämättä enää olekaan ongelma.

Oletkos sitä AMD:tä kokeillut sillä Intelin kääntäjällä ja kirjastoilla? Eikös niiden pitäisi toimia myös AMD:n prossulla?
Tosin historissa Intel on perseillyt ja ne hienoimmat optimoinnit on saanut vain heidän prosessoreillaan käyttöön kun taas AMD:llä on käytetty ihan peruskäskyjä vaikka tukisikin samoja käskyjä kuin Intelin prosessori.
Olivat ihan oikeudessa tuon casen takia.

Sitten tietysti kannattaisi myös clang:lla kokeilla, se pieksee GCC:n aika hyvin tietyissä tilanteissa ja toisissa taas häviää.
GCC vs. LLVM Clang Compiler Performance On AMD's Ryzen - Phoronix

Ja kuten tuosta käy ilmi niin jopa sillä on paljon merkitystä mitä versiota GCC:stä taikka clang:sta käyttää.
 
Oletkos tähän tutustunut?
BLIS - GPUOpen

AMD pistää aika paljon paukkuja tuonne GPU puolelle kehitykseen, käsittääkseni hiljattain palkkasivat jonkinverran väkeä työskentelemään pelkästään ROCm:n kanssa.

Ilmeisesti AMD visioi että yhä enemmän GPU:lla tullaan laskentaa tekemään ja vegan tuoma HBCC esimerkiksi voisi auttaa nimenomaan sellaisessa tilanteessa missä GPU:n oma muisti ei riitä sille työlle kun saumattomasti voidaan käyttää järjestelmän muistia sen kortin oman muistin jatkeena jolloin se kopiointi josta aiemmin puhuit ei välttämättä enää olekaan ongelma.

Oletkos sitä AMD:tä kokeillut sillä Intelin kääntäjällä ja kirjastoilla? Eikös niiden pitäisi toimia myös AMD:n prossulla?
Tosin historissa Intel on perseillyt ja ne hienoimmat optimoinnit on saanut vain heidän prosessoreillaan käyttöön kun taas AMD:llä on käytetty ihan peruskäskyjä vaikka tukisikin samoja käskyjä kuin Intelin prosessori.
Olivat ihan oikeudessa tuon casen takia.

Sitten tietysti kannattaisi myös clang:lla kokeilla, se pieksee GCC:n aika hyvin tietyissä tilanteissa ja toisissa taas häviää.
GCC vs. LLVM Clang Compiler Performance On AMD's Ryzen - Phoronix

Ja kuten tuosta käy ilmi niin jopa sillä on paljon merkitystä mitä versiota GCC:stä taikka clang:sta käyttää.

Jos käsiteltävät datalohkot ovat yhtään isompia, ja niitä joutuu swappaammaan / hakemaan keskusmuistista, niin PCIe:n hitaus syö hyvin äkkiä sen GPU:n rinnakkaisuuden aikaansaaman hyödyn.
Kun dataa prosessoidaan raskaasti, niin se data ei saa olla minkään hitaan väylän päässä, vaan mahdollisimma äkkiä saatavissa.
Esim valokuvia käsitellessä, kun kuvat veivät yli 64 GT, näyttis (6Gigaa muistilla) oli melkoisen turha kapine, vaikka softa sitä tuki VS 6C12T (IVYB) prossuun ja 32 Gigaan muistia.

Prossussa oleva GPU voi olla tuohon ihan hyvä, paitsi siinä tapauksessa 2 kanavainen DDR4 muistiohjain kyllä tikahtuu alkuunsa, joten saavutettava hyöty jää helposti pieneksi.
-----------------
Heterogenous CPU olisi kova sana, mutta se vaatii tiukkaa yhteistyötä ominaisuuksien käyttöönottamiseksi mm. MS:n kanssa. Pelkkä raudan julkaisu on täysin riittämätön tempaus. Lisäksi jos eri valmistajat tekevät epäyhteensopivat versiot aiheesta, niin ko ominaisuuden käyttöönotto hidastuu erittäin huomattavasti.
 
Jos käsiteltävät datalohkot ovat yhtään isompia, ja niitä joutuu swappaammaan / hakemaan keskusmuistista, niin PCIe:n hitaus syö hyvin äkkiä sen GPU:n rinnakkaisuuden aikaansaaman hyödyn.
Kun dataa prosessoidaan raskaasti, niin se data ei saa olla minkään hitaan väylän päässä, vaan mahdollisimma äkkiä saatavissa.
Esim valokuvia käsitellessä, kun kuvat veivät yli 64 GT, näyttis (6Gigaa muistilla) oli melkoisen turha kapine, vaikka softa sitä tuki VS 6C12T (IVYB) prossuun ja 32 Gigaan muistia.

Prossussa oleva GPU voi olla tuohon ihan hyvä, paitsi siinä tapauksessa 2 kanavainen DDR4 muistiohjain kyllä tikahtuu alkuunsa, joten saavutettava hyöty jää helposti pieneksi.

Nyt sinä unohdat kokonaan että HBCC:n kanssa sitä swappaamista ei tarvitse tehdä. GPU:n muistiin ladataan se mitä mahtuu ja loput keskusmuistiin ja sitä dataa voidaan käyttää suoraan sieltä keskusmuistista ilman mitään swappailua. Tämä ei ole graffakorteissa ollut ennen mahdollista käsittääkseni vaan aina on jouduttu swappaamaan jos ei ole mahtunut kortin muistiin.

Tai ilmeisesti HBCC mahdollistaa myös sellaisen toiminnan että se kortin muisti on kakkuna ja sinne taltioidaan dataa joka ottaa hittiä kovin, muu on keskusmuistissa.

Tai sitten jos data vaatii teratavulla muistia, niin sekin onnistuu AMD:llä SSG:n kanssa.

Kokeileppa huviksesi tuota sinun 64GT skenaariota Vegan kanssa ja anna sille Vegalle vaikka +24 Gigaa HBCC:n kanssa muistoa, vähän veikkaan että tulos on hiukan toinen kuin tuolla pelkällä 6GT muistolla varustetulla kortilla.
 
Nyt sinä unohdat kokonaan että HBCC:n kanssa sitä swappaamista ei tarvitse tehdä. GPU:n muistiin ladataan se mitä mahtuu ja loput keskusmuistiin ja sitä dataa voidaan käyttää suoraan sieltä keskusmuistista ilman mitään swappailua. Tämä ei ole graffakorteissa ollut ennen mahdollista käsittääkseni vaan aina on jouduttu swappaamaan jos ei ole mahtunut kortin muistiin.

Tai ilmeisesti HBCC mahdollistaa myös sellaisen toiminnan että se kortin muisti on kakkuna ja sinne taltioidaan dataa joka ottaa hittiä kovin, muu on keskusmuistissa.

Tai sitten jos data vaatii teratavulla muistia, niin sekin onnistuu AMD:llä SSG:n kanssa.

Kokeileppa huviksesi tuota sinun 64GT skenaariota Vegan kanssa ja anna sille Vegalle vaikka +24 Gigaa HBCC:n kanssa muistoa, vähän veikkaan että tulos on hiukan toinen kuin tuolla pelkällä 6GT muistolla varustetulla kortilla.

HBCC vain lähinnä automatisoi datanvaihdon näyttiksen muistiin.

Sikäli, kun se käsiteltävä datamöhkäle on iso, HBCC:llä ei saavuteta mitään hyötyä, jos se ei maagisesti lisää PCIe:n kaistaa, jota se ei tee. Asian pyörittely taustalla ei auta kertakaikkiseen kaistan puutteeseen. Välimuistia (näyttiksen muistia) pitää olla niin paljon, jotta PCIe siirrot ovat hyvin harvinaisia. Nyt jos kuitenkin rinnakkaistetaan massiivisesti, esim käsitellään aineiston eri osia, niin tuo cache (näyttiksen muisti) jää melko pieneksi ja PCIe laulaa usein, jolloin se tukkeutuu.
Jos tuolla maagisesti ratkaistaisiin näyttiksen paikallismuistin määrän ongelma, niin meillä ei suorituskykyisiisä näyttiksissä olisi läheskään niinpaljon muistia, kuin nyt on, sillä GPU:n kylkeen lyötävä muisti on kallista ja noissa säästetään, aina, kun mahdoollista.

Materiaaleja ei enää ole, eikä ole ohjelmaakaan, ko versio toimi vain rajoitetun ajan. Pitempi käyttö vaatisi hyvin kalliin lisenssin.

No, Vegassa on 16 Gigaa matalalatenssista, nopeaa muistia ja se on paljon uudempi kortti. Vaikka AMD tyrikin vegan kanssa raskaasti, niin en hetkeäkään epäile, etteikö se olisi jonkinverran / paljonkin nopeampi, riippuen, miten tuo muisti riittäisi.
 
Viimeksi muokattu:
Nopeasti katsoen 5.8GHz käyttäen 8-ydintä ja 16-säiettä? Mutta minusta on aika turhaa etsiä tuollaisia "miten paljon maksimissaan voi prosessoria ylikellottaa".

En tiedä ymmärsinkö nyt jotain väärin viestistäsi, mutta itseäni nimenomaan tuossa alkuperäisen kirjoittajan lausahduksessa ärsytti se epämääräisyys. Se kun jättää aika paljon auki ja jos nyt jaksaisin niin alkaisin laskemaan prosentuaalista arvoa tuolle kellotaajuuden nostolle mutta koska olen laiska niin en viitsi.

Nimim. itsehän en ole edes omaa prossuani (R5 1600) kellottanut lainkaan :comp:
 
En tiedä ymmärsinkö nyt jotain väärin viestistäsi, mutta itseäni nimenomaan tuossa alkuperäisen kirjoittajan lausahduksessa ärsytti se epämääräisyys. Se kun jättää aika paljon auki ja jos nyt jaksaisin niin alkaisin laskemaan prosentuaalista arvoa tuolle kellotaajuuden nostolle mutta koska olen laiska niin en viitsi.

Nimim. itsehän en ole edes omaa prossuani (R5 1600) kellottanut lainkaan :comp:

Noh, R5 1600X 3.6GHz (turbo 4) => 5.9GHz ja 1800X 3.6 (turbo 4) => 5.8GHz

jos 3600 = 100% niin 36 = 1%, tästä voidaan laskea että 5800 = 161.1111...% ja 5900 = 163.888...%
Eli maksimissaan 1800X saa kellotettua vakiosta sen rapiat 161% (jos vakio on 100%) ja 1600X prosessoria 163,9% (jos vakio on 100%)

JOS oletetaan että 1600 kellottuisi saman verran kuin 1600X voidaan laskea että 3.2GHz = vakio (3.6 turbolla) joten:
3200 = 100% niin 32 = 1% tästä voidaan laskea että 5800 = 181.25% ja 5900 = 184,375%

Itse voisin siis teoriassa todeta että oma 1700X voi teoreettisesti kellottua 3.4GHz (3.8turbo) samalla kaavalla katsoen pelkästään 1800X saatua ennätystä 34 = 1% joten 170% ja rapiat saisin "hyötyä" maksimaalisesta kellotuksesta.

Käytännön kellotuksesta voin 24/7 kelloistani tehdä seuraavan laskun: 3975 (nykyinen kellotukseni) ~117% kellotus (3.975GHz) ja idlatessaan vain 33.8% kellot (1.15GHz)
Joku voi laskea paljonko jännite-eroa (tai euroja kuukaudessa tms) tulee maksimiin kellotetulla omalla prosessorillani (1.35625V) minimiin verrattuna (0.6025V) jos haluaa, itse en nyt jaksa alkaa moiseen.
 
Nopeasti katsoen 5.8GHz käyttäen 8-ydintä ja 16-säiettä? Mutta minusta on aika turhaa etsiä tuollaisia "miten paljon maksimissaan voi prosessoria ylikellottaa". Tosin jokainen tyylillään.. ..toivottavasti olet onnellinen tiedosta. Itse en tuolla tiedolla mitään tee paitsi ehkä voin todeta että Intelillä ei taida olla kiveä mikä kellottuu yhtä hyvin 8-ytimellä ja 16-säikeellä? :smoke:
Nimenomaan lähes ketään ei kiinnosta nuo kuivajää/nestetyppi kellotukset - Ei auta Janne PerusJonnea edes Cinepelissä...

Silti pitänee nyt kuitenkin korjata yllä oleva lainaus seuraavalla linkillä:

Cinebench - R15 overclocking records @ HWBOT
 
Ei näy muuten rytsölää tuolla listalla 5.8MHz kohalla vaan korkein on 5.5MHz.
Että kuinkas on?
No mitäs maagista se ryzölä saavuttaisi tolla 5,5 -> 5,8GHz kellotaajudella?

Lainaus johon aiemmin vastasin liittyi ainoastaan maksimikellotukseen ja mielestäni linkin useampi 6GHz+ Intel vähän niin kuin kumoaa tämän?!
 
Lainaus johon aiemmin vastasin liittyi ainoastaan maksimikellotukseen ja mielestäni linkin useampi 6GHz+ Intel vähän niin kuin kumoaa tämän?!

Jos siellä nyt oli useampikin kellotus tehty "Itse en tuolla tiedolla mitään tee paitsi ehkä voin todeta että Intelillä ei taida olla kiveä mikä kellottuu yhtä hyvin 8-ytimellä ja 16-säikeellä?" vähintään 8-ydin/16-säie prosessorilla siten että kaikki ytimet sekä säikeet olivat käytössä? Koska olihan siinä minun postissani myös "vain" 6-ydin/12-säi 5.9GHz 1600X tulos mihin voi sitten vertailla näitä ns. halpaversioita prosessoreista millä on vähäisempi määrä ytimiä jne. käytössään.
 
Koneina Threadripper 1950x Asrock x399 Taichi emolevy ja 96GB (3000 Mhz CL15) muistia
i7-5960x (4Ghz) Asus deluxe x99 emolevy, 64GB muistia
Tulokset:
Intel 8 threads icc+mkl 7m30s
Intel 16 threads icc+mkl 6m27s
Intel 8 threads gcc+OpenBLAS 11m20s [-02 -ffast-math]
Intel 8 threads gcc+OpenBLAS 12m25s [-O3]
Intel 8 threads gcc+mkl 8m12s

AMD 16 threads gcc+OpenBLAS 14m38s
AMD 32 threads gcc+OpenBLAS 13m42s

Affinity asetettu niin että fyysiset ytimet täytetään ensin. Kuten näkyy hyperthreading vaikutus on varsin minimaalinen. Nämä ovat vain yhdestä ajosta, joten erot voivat vielä tasoittua. Kerralla käytössä on 30 säiettä, joten AMD:n ytimet eivät tule aivan täyteen. Tästä näkyy myös että Intelin icc+mkl yhdistelmä on täysin ylivoimainen verrattuna OpenBLASiin. Muistikäyttö AMD:llä oli noin 45GB.

Blokkaako ICC+MKL yhdistelmä muut kuin Intelin prossut, vai miksi TR:n lukemia ei ole sillä?
ICC on monesti huomattavasti GCC:tä nopeampi liukuluvuissa, joten olisi kiva nähdä ero GCC:n ja ICC:n välillä TR:llä.
Omien testien mukaan ICC >=2015 on keskimäärin parhain kääntäjä Zenille (ICC / MSVC / GCC 7.x).

ICC:n tietyillä käännösparametreilla koodiin lisäämä Vendor-blokkaus on helppo poistaa muuttamalla pari käskyä binääreistä.
 

Statistiikka

Viestiketjuista
262 695
Viestejä
4 563 002
Jäsenet
75 010
Uusin jäsen
MrBrutalMachine

Hinta.fi

Back
Ylös Bottom