Näyttäisi tosiaan nuo jatkossa watit merkkaavan enemmän kuin gigahertsit:
An end to scaling: Intel's next-generation chips will sacrifice speed to reduce power - ExtremeTech
Netti on nyt näitä artikkeleita väärällään, mutta kyllä se enenevissä määrin alkaa näyttää siltä, että tähän suuntaan mennään jo nyt.
Tuo artikkeli vaikuttaa vähän siltä, että sen kirjoittaja on pahasti väärinymmärtänyt jonkun alkuperäisen esityksen pontin.
Mikä tilanne lienee oikeasti:
Joku intelillä on sanonut, että IoT tulee olemaan intelille tärkeä markkinasegmentti tulevaisuudessa, ja SIINÄ tarvitaan erittäin vähävirtaisia piirejä. Ja sitten on vähän löpinää valmistusprosesseista yms. jotka mahdollistavat sen todella pienen virrankulutusken sille IoT:lle(jopa suorituskyvyn kustannuksella).
Intel ei kuitenkaan ole "isoissa PC-prosessoreissaan" ottamassa (ainakaan kaikkia) näitä tekniikoita käyttöön
Kovilla kelloilla tyydytetään joku porukka, pienellä virrankulutuksella lähes kaikki.
Ei nyt sotketa kellotaajuutta ja yhden ytimen suorituskykyä keskenään. Kellotaajuudella ei suoraan pitäisi koskaan olla kuluttajalle/käyttäjälle mitään väliä, vaan käyttäjälle pitäisi olla väliä vain suorituskyvylle tietyissä tilanteissa, ja kellotaajuus on vain yksi keino saavutta se suorituskyky.
Ja intel tajusi jo >10 vuotta sitten P4sta luopuessaan, että sähkönkulutuksella on väliä, ja jo silloin tehtiin siirtymä maksimisuorituskyvyn tavoittelusta järkevään kompromissiin suorituskyvyn ja sähkönkulutuksen välillä.
Pelipuolella tämä tarkoittanee että haaste utilisoida mahdollisimman tehokkaasti hajautuva laskentateho siirtyy enemmän korkeammille tasoille (kääntäjät, pelimoottorit, grafiikka-API:t yms).
öö, ei tässä NYT ole mitään muutosta nyt tulossa. Intelillä on jo todella monen vuoden ajan ollut kuluttajille myynnissä prosessoreita, jotka ajaa kahdeksaa säiettä. Softatuki vaan aina laahaa perässä.
Ja käytännössä noiden ohjelmointirajapintojen suhteen tilanne on se, että ne voi olla monisäikeistyksen suhteen joko neutraaleita (koodaaja joutuu itse nysväämään asioita ja miettimään synkronointia, mutta asiat on mahdollisia: normaali vanha C/C++), sitä rampauttavia (kielletty tai estetty asioiden tekeminen monesta säikeestä: python(*)/javascript), tai sitä mahdollistavia ja helpottavia: OpenMP, OpenCL, C++17n parallel algorithms.
Kääntäjien tukea asioiden rinnakkaistukselle parannetaan jatkuvasti, mutta overhead uusien säikeiden luomisessa ja niiden synronoinnissa on niin suuri, että mitään
täysin automaattista uusia säikeitä luovaa rinnakkaistajaa ei kääntäjään kannata tehdä, vaikutus olisi aivan liian usein negatiivinen. Kääntäjien automaattisessa rinnakaistustuessa keskitytään enemmän siihen, että SIMD-käskykannat (SSE, AVX, AVX-512) saadaan käyttöön tehokkaasti. Ja koodaaja sitten kirjoittaa ne pari OpenMP-pragmaa niihin todella pitkiin isoihin looppeihin, jotka halutaan rinnakkaistaa myös useammille säikeille, tai luo itse ne säikeet niille rinnakkaisille korkean tason taskeille.
Ja tosiaan javascriptin ja pythonin (jotka on monisäie-vihamielisiä kieliä) käyttö on vaan jatkuvasti lisääntymässä
Toisaalta ei kai tämä nyt kovin mahdotonta ole kun noissa konsoleissa on aina ollut paljon hitaita ruppaytimiä, mutta silti ne pelit näyttää hyviltä.
Hyvältä näyttäminen on enemmän kiinni näyttiksen väännöstä, ei CPUn. CPU-tehoa tarvii enemmän siihen, että se pelimaailma toimii järkevästi. Ja siinä konsolipelit on keskimäärin olleet selvästi PC-pelejä jäljessä, konsolipelit on paljon yksinkertaisempia sisällöltään ja pienempiä maailmaltaan yms.
Ja intelillä on jo nyt kuluttajille markkinoilla piirejä, jotka ajaa suurempaa määrää rautäsäikeitä kuin mikään konsoli.
Joku voi sanoa ettämutku PC:llä näyttää paremmalta, niin sitten menee joku hetki ja tulee uus konsoli, jolla ne graffat jokseenkin yhtä hyvät kuin sillä vähän vanhemmalla PC:llä...ja silti se prossun maksimikello on edelleen sikahidas, paljon hitaampi kuin siinä PC:ssä. Toisekseen tuo uusin ääsboks ei ole yhtään hassumpi kapistus, ei mitään jakoa päästä lähellekään samaa kyvyvkkyyttä PC-puolella samalla budjetilla, hyvä jos samantehoisen näytönohjaimen edes saa.
Konsoleilla framerate on tyypillisesti rajoitettu 60 FPSään. Tarkoittaa sitä, että vääntöä samannäköisen grafiikan piirtämiseen tarvii vähemmän kuin että PCllä haluttaisiin sama kama pyörimään selvästi suuremmalla FPSllä.
Lisäksi konsoleilla kun tiedettiin tasan tarkkaan, mikä kohdekonsolin suorituskyky on, voitiin tehdä todella paljon sellaisia optimointeja, että jos vaikka jossain tietyssä kohdassa kenttää framea ei ehdittäisikään piirtää 16.666 millisekunnissa, sitten siitä kohtaa kenttää poistetaan hiukan yksityiskohtia, tai tilapäisesti jätetään kauempana olevia kohteita piirtämättä tms. jolla saadaan se piirtäminen mahtumaan yhteen ruudunvirkistykseen.
Tai jos tiedetään, että vaikka jonkun tietyn aseen suuliekki saisi aikaan efektin jonka piirtäminen on liian hidasta, sitten yksinkertaistetaan sitä efektiä tai rendataan muuta kamaa pienemällä laadulla, kun se efekti on ruudulla.
Nyt uusien molempiin suuntiin yhteensopivien mutta erisuorituskykyisten konsolien kanssa tällaisten optimointien tekeminen menee sitten hankalammaksi.
(*) pythonissa monen säikeen käyttöä ei ole täysin estetty, mutta säikeitä ei voi vaan tehdä ja ajaa rinnakkain eikä mikä tahansa python-koodi voi ajautua rinnakkain. Yksittäisiä kohtia koodista saa rinnakkaistettua jollain mekanismilla, mutta tämä soveltuu vain siihen että joku yksittäinen loppi rinnakkaistetaan monelle säikeelle, ei siihen että koodissa on monta korkean tason taskia joita ajetaan rinnakkain