Tietenkin auttaa, 5 vuoden päästä on mahdollista olla olemassa pelimoottori pelissä, joka ottaa sen ryzenin yn prossujen ongelmat huomioon.
Mistähän
ongelmista nyt oikein puhut?
Silloin, kun ryzen julkaistiin, niin kukaan AMD:n ulkopuolella ei tiennyt, miten sille pitäisi softa optimoida.
Kyllä tiesi.
Sen arkkitehtuurista oli kaikki oleellinen julkaistu jo puolisen vuotta aiemmin. Vain jotain aivan pieniä nippelitietoja julkaistiin myöhemmin. Tämän puoli vuotta aiemmin julkaistun arkkitehtuuritiedon perustaalla pystyi aika hyvin tietämään, miten zenille pitää optimoida.
Peleissä nyt on vähän se ongelma, että tietyiltäosin niiden rakenne on tapahtumaketju, jossa edellinen pala vaikuttaa seuraavaan. Tälläinen ongelma ei oikein rinnakkaistu.
Kyllä.
Kääntäjä kääntää ohjemaan eri vaihtoehtoja, sen mukaan, tunnistaako se prossun.
Jos se ei tunnista prossua, niin se pistää sen käyttämään peruskoodia, joka kaikkien todennäköisimmin toimii.
Ei sen tarvi tunnistaa prosessoria että se voi käyttää sen käskykantalaajennoksia.
CPUID-käsky kertoo suoraan,
mitä käskykantalaajennoksia prosessori tukee.
Jos prosessori vastaa CPUID-käskyllä tukevansa AVXää, sitten AVX-koodipolku voidaan ottaa käyttöön, jos prosessori ei sano tukevansa AVXää, sitten AVX-koodipolkua ei voida ottaa käyttöön, jne.
(Tosin zen ei sano tukevansa FMA4sta mutta FMA4-käskyt toimivat siinä silti.)
Jos tulee uusi prossu, niin tietenkin softa pitää kääntää kääntäjällä, joka tunnistaa prossun ja asettaa ominaisuusliput sitten sen mukaan oikein. Ei tuossa tuloksessa ole mitään ihmeellistä.
Ei tarvi. Selitin yllä, miksi ei tarvi.
JA jos kääntäjän tekijänä on prossuvalmistama, niin ei se käy kyttäilemään ja testailemaan muiden tekeleitä, toimiiko ne erikoisimmissa tiloissa jatkuvalla syötöllä..Sama ilmiö voi käydä jopa valmistajan omalla, uudella prossulla.
Ei tarvi testata tasan tarkkaan mitään kilpailijan prosessorilla. Kääntäjä kääntää koodia
käskykannalle, ei prosessorille, ja käskykanta määrittelee
kaiken mitä tarvii määritellä siihen että ohjelma toimii oikein. Toki kääntäjä voi sitten
optimoida koodin jonkun prosessorimallin mikroarkkitehtuurille, mutta tällä ei ole
toimivuuden kanssa mitään tekemistä.
Jos prossu sanoo tukevansa jotain käskykantalaajennosta, sitten se otetaan käyttöön. Ja jos jossain prossussa on joku buginen käsky, se on tasan tarkkaan vain sen prossuvalmistajan ongelma, ja prossuvalmistaja julkaisee sitten mikrokoodipäivityksen, joka joko
1) korjaa bugin tai
2) laittaa prosessorin vastaamaan CPUID-käskyyn eri tavalla, että kyseisen bugisen käskyn sisältävä käskykantalaajennus ei olekaan tuettu, jolloin sitä ei oteta käyttöön softissa, jotka testaavat, mitä käskyjä on tuettu.