Virallinen: AMD vs Intel keskustelu- ja väittelyketju

  • Keskustelun aloittaja Keskustelun aloittaja Sampsa
  • Aloitettu Aloitettu
Missä kohtaa olen sanonut "kaiken voi rinnakkaistaa"?
Miksi pitäisi olla mitään kriittistä säiettä? Mikäli hyvin säikeistyvässä softassa on selkeä yksittäinen säie joka suorituskykyä selvästi rajoittaa, softassa on pahemmin vikaa. Tuollaisessa tilanteessa rajoittaa ennemmin se kuinka nopeasti prosessori suorittaa kaikkia säikeitä.

Niinkuin oikeasti.
 
Jep niin minkäin sen vähän ajattelin että jos boosta korkeammalle niin otan sen :cigar2:
Jos en nyt aivan väärässä ole niin ryzenit toimii aika hyvin kun jäähdyttää ja antaa itse boostailla

Ainakin omat kokemukset 2700X:n kuorman mukaan boostailuista ovat sen verran hyviä että jos toimii vähintään yhtä hyvin niin ei pienintäkään hätää. Peleissä nostaa kelloja kiitettävän lähelle maksimia ja kaikkien ytimien kuormassa suunnilleen 4 GHz taulussa koko ajan.

Se on sitten eri asia että miksi noissa vuodoissa sille 16-ytimiselle on maksimiboostit selvästi pienemmät kuin 12-ytimiselle. Eivät kuitenkaan ne neljä lisäydintä vie idlatessakaan niin paljoa että selittäisi usean sadan megahertsin eroa tuohon suuntaan etenkin kun TDP-ero on iso ja tasan varmasti kattaa idlaavien ytimien extrakulutuksen. Vertaa 2600X vs 2700X, ei 2700X:kään jää jälkeen kelloissa missään tilanteessa. Tämän takia haisee fake hommassa.

CES-messujen jälkeen olemme toivottavasti viisaampia.
 
Missä kohtaa olen sanonut "kaiken voi rinnakkaistaa"? Missä kohtaa olen sanonut yhdestä raskaasta säikeestä eroon pääsemisen olevan helppoa vanhemmilla DirectX rajapinnoilla? En missään.

Lue ihan oma tekstisi:



"Helpompi", "paljon vaikeampi käyttää". Eli toisin sanottuna kyseessä on enemmän se mainitsemani laiskuus kuin että säikeistäminen on "mahdotonta".

Olet pohjimmiltaan ihan samaa mieltä asiasta ja silti vänkäät koska termi "laiskuus" ei jostain kumman syystä aukea.



Höpö höpö. Mikäli nämä "säikeistys mahdotonta" jutut pitäisivät paikkaansa, pelit pyörisivät edelleen hyvin yhden ytimen prosessoreilla. Ja varmasti pyörisivätkin mikäli enemmistöllä olisi käytössä yhden ytimen prosessoreita.

Mutta kas kummaa kun prosessorien ydinmäärät ovat kasvaneet, myös säikeistyvien pelien määrä on kasvanut. Mikäli prosessorien ydinmäärät kasvavat entisestään, myös pelien säikeistys paranee tulevaisuudessa. Missä siis on se säikeistyksen "mahdottomuus"? Kyllä se motivaatio tehdä säikeistystä on se mikä on ratkaissut. Ja mikä ratkaisee jatkossakin. Ehkä jossakin kohtaa tulevat rajat vastaan mutta eivät vielä pitkään aikaan.
Huoh. Luetko ollenkaan mitä sinulle kirjoitetaan? Tässä ei ole kukaan väittänyt, että tuo säikeistyminen olisi mahdotonta. Tässä on sanottu varmaan 100x, että hyvin säikeistyvän pelin ohjelmointi on jo ensinnäkin suunnittelun kannalta työlästä ja ennenkaikkea toteutuksen puolesta. Se että peli lähdetään tällä tavoin toteuttamaan ottaa puhtaasti 2^n ajan vrt. hkultalan em. kuvaileman tavan ohjelmoida peliä. Ymmärrät varmaan, että nyrkkipaja jossa on 100-200 työntekijää sis. alihankkijat ei ihan hirmu mielellään lähde toteuttamaan mitään tuollaista jo kustannussyistä, etenkään jos pelikokemuksen kannalta sillä ei ole suuremmoista merkitystä.:facepalm:
 
Niinkuin oikeasti.

Mitä tuossa on epäselvää? Hyvin säikeistyvissä ohjelmissa harvemmin on sitä yhtä selvästi rajoittavaa säiettä koska ne säikeistyvät paremmin. Moniydinprosessoreissa kun tuppaa kellotaajuus laskemaan sitä mukaa kun enemmän ytimiä otetaan käyttöön...

Huoh. Luetko ollenkaan mitä sinulle kirjoitetaan? Tässä ei ole kukaan väittänyt, että tuo säikeistyminen olisi mahdotonta. Tässä on sanottu varmaan 100x, että hyvin säikeistyvän pelin ohjelmointi on jo ensinnäkin suunnittelun kannalta työlästä ja ennenkaikkea toteutuksen puolesta. Se että peli lähdetään tällä tavoin toteuttamaan ottaa puhtaasti 2^n ajan vrt. hkultalan em. kuvaileman tavan ohjelmoida peliä. Ymmärrät varmaan, että nyrkkipaja jossa on 100-200 työntekijää sis. alihankkijat ei ihan hirmu mielellään lähde toteuttamaan mitään tuollaista jo kustannussyistä, etenkään jos pelikokemuksen kannalta sillä ei ole suuremmoista merkitystä.:facepalm:

Ja minä taas olen sanonut varmaan 100x että säikeistyksessä on kyse ennen kaikkea laiskuudesta ja siihen liittyvistä asioista, joihin sisältyy rahankäyttö, vaiva, aika ja niin edelleen.

1. Asia pystytään tekemään jos halutaan (ja n+1 muuta ehtoa tähän)

2. Asiaa ei pystytä tekemään vaikka kuinka haluttaisiin koska (tähän syyt)

Säikeistys on tuota ykköskategoriaa. Hyvin säikeistyvän pelin saa ihan varmasti tehtyä jos on osaavat tekijät, loputon budjetti.

Sitten on tiettyjä asioita kakkoskategoriassa joita ei pystytä tekemään nykytekniikalla vaikka olisi kuinka loputon budjetti käytössä.

Millä perusteella pelien säikeistys on kakkoskategoriaa? Ei millään. Siksi säikeistyksen mahdollinen puute on ilman muuta laiskuutta ja siihen liittyviä asioita (joihin sisältyy jne).
 
Sitähän olen koko ajan sanonutkin: koodaajien laiskuudesta on pohjimmiltaan kyse eikä mistään muusta.



Ei olekaan niin, sehän on selvä että tuollainen tuottaa lisää työtä. "Ei pystyy tekemään" ja "ei tehdä koska maksaa, on vaivaa, ei kiinnosta ja niin edelleen" ovat eri asioita.

Koko keskusteluhan lähti siitä ettei kuulemma tiettyjä asioita pysty säikeistämään. No ei pystykään mutta pullonkaula on edelleen hyvin vahvasti ohjelmoijien puolella, ei siinä etteikö pelejä pystyttäisi säikeistämään koska on jokin vakavanlaatuinen ongelma jolle ei yksinkertaisesti ole olemassa ratkaisua.



Tänä vuonna bugisena, paras vaihtoehto. Ja myös ehkäpä kaikkein yleisin :smoke:

Jyllä se koodaajien laikuus vähenee paljonkin, kun palaajat käyvät maksamaan mukisematta esim 120e / peli ja silti ostavat yhtäpaljon, kuin nykyään. Eli koodaus on kallista, jos siihen halutaan lisää resursseja, niin pitää maksaa!

Halpa ja hyvä ei usein koodauksen lopputuotteenakaan kohtaa, ihan perus syistä.

Ja niin tai näin, niin se säikeistys käytännössä onnistuu järkevästi vain tiettyyn rajaan asti.
Tosin mitä enemmän johonkin peliin tulee liikkuvia palikoita, niin sitä enemmän niitä monasti pystytään säikeistämään (Jos ne eivät riipu toisistaan..)
 
Threadripper sanoi:
Ja minä taas olen sanonut varmaan 100x että säikeistyksessä on kyse ennen kaikkea laiskuudesta ja siihen liittyvistä asioista, joihin sisältyy rahankäyttö, vaiva, aika ja niin edelleen.

Se, että jotain täysin virheellistä ja typerää hokee sata kertaa ei tee siitä totta eikä fiksua.

Tässä on kyse tuottavuudesta ja tuotekehitysajasta, ei laiskuudesta.



edit: mitähän tämä foorumi meinasi bugata, kun meinasi aluksi tulla lainaukseen väärä nimi..
 
Se, että jotain täysin virheellistä ja typerää hokee sata kertaa ei tee siitä totta.

Tässä on kyse tuottavuudesta, ei laiskuudesta.
Juurikin näin. Se perus kalle-koodari kyllä tekee varmasti ihan mielellään tuotakin hommaa, kun tunnit juoksee samaan aikaan. Työnantaja tosin on toista mieltä etenkin, kun isommissa peleissä ensimmäinen ongelma ei yleensäkään ole se miten peli toimii tietyillä prosessoreilla vaan yleisen pelikokemuksen ja käytettävyyden viimeistely, jotta myynti pysyisi jatkossakin kasvavana.

Ja niin tai näin, niin se säikeistys käytännössä onnistuu järkevästi vain tiettyyn rajaan asti.
Tosin mitä enemmän johonkin peliin tulee liikkuvia palikoita, niin sitä enemmän niitä monasti pystytään säikeistämään (Jos ne eivät riipu toisistaan..)
Kyllä näin on. Mutta kuten jo edellä mainittiin niin lähes aina jokin mainprosessi paisuu isommaksi, vaikka muita romuja saataisiinkin jaettua toisille säikeille. Tuo johtaa taas sitten suorituskyvyn sakkaamiseen.
 
:facepalm:

Ei ole.

Pelikoodarin tehtävä on saada peli valmiiksi ja toimimaan järkevällä aikataululla.

Ei optimoida sen suorituskykyä vuosia jotta saadaan peli bugisena pihalle vuosia myöhässä.

Jos on yhtään tehnyt mitään työtä missä on minkäänlaista tulosvastuullisuutta pitäisi ymmärtää tällaiset asiat.

Tämä on niin totta, niin monella alalla. Jatkuvasti joutuu miettimään: Kulut n e/h, arvioitu aika työn tekemiselle m tuntia. Lopputuloksen arvo, mitä asiakas siitä olisi valmis makamaan = n*m + lisäkulut, ei se halua maksaa -> Sori, en tee, et halua tätä. Ja jos välttämättä haluaa, niin sitten pistetään ehdot s.e. voidaan juostenkusta homma kulujen säästämiseksi, eikä lopputulos ole oikeasti kenestäkään hyvä. Tämä hommien loppuun kilpailuttamisem seuraukset ovat olleet nähtävissä valitettavati niin monissa projekteissa, vähän kaikilla aloilla, yhä uudestaan ja uudestaan.

Voi myös käydä niin, että hommaan palkattu firma ensin viivästyttää puolen vuoden projektia vaikkapa vuodella, jonka jälkeen keikkaa nurin ja sitten palkataan toinen firma ja tilanne voi olla jopa pahempi, kuin alussa, vaikka koko budjetti on jo käytetty..
---------
Yksi tapa, jolla kilpailutuksissa kusetetaan firmoja on tietysti se, että tietetään suunnitelmat firmassa X ilmaiseksi (tarkka tarjouslaskelma ym) jos sitten ko homma tietetäänkin ko spekseillä firmassa Y, jolloin firma X on saattanut tehdä melko pirunmonta työtuntia ilmaiseksi.
 
Jyllä se koodaajien laikuus vähenee paljonkin, kun palaajat käyvät maksamaan mukisematta esim 120e / peli ja silti ostavat yhtäpaljon, kuin nykyään. Eli koodaus on kallista, jos siihen halutaan lisää resursseja, niin pitää maksaa!

Halpa ja hyvä ei usein koodauksen lopputuotteenakaan kohtaa, ihan perus syistä.

Ja niin tai näin, niin se säikeistys käytännössä onnistuu järkevästi vain tiettyyn rajaan asti.
Tosin mitä enemmän johonkin peliin tulee liikkuvia palikoita, niin sitä enemmän niitä monasti pystytään säikeistämään (Jos ne eivät riipu toisistaan..)

Eli säikeistystä ei rajoitakaan sen absoluuttinen vaikeus vaan se mitä pelaajat ovat valmiit maksamaan? Sitä olen koko ajan sanonutkin.

Olen sanonut samaa, tiettyyn rajaan asti. Joka on aika kaukana.

Niitä toisistaan riippumattomiin asioihin pätee ihan sama: ei se absoluuttinen vaikeus vaan...

Se, että jotain täysin virheellistä ja typerää hokee sata kertaa ei tee siitä totta eikä fiksua.

Tässä on kyse tuottavuudesta ja tuotekehitysajasta, ei laiskuudesta.

edit: mitähän tämä foorumi meinasi bugata, kun meinasi aluksi tulla lainaukseen väärä nimi..

Täysin oikean asian muuttaminen on turhaa.

Kuinkahan monta kertaa olen sanonut termin "laiskuus" sisältävän myös mm. rahalliset ja ajankäytölliset asiat? Aika monta kertaa.

Juurikin näin. Se perus kalle-koodari kyllä tekee varmasti ihan mielellään tuotakin hommaa, kun tunnit juoksee samaan aikaan. Työnantaja tosin on toista mieltä etenkin, kun isommissa peleissä ensimmäinen ongelma ei yleensäkään ole se miten peli toimii tietyillä prosessoreilla vaan yleisen pelikokemuksen ja käytettävyyden viimeistely, jotta myynti pysyisi jatkossakin kasvavana.

Miten työnantajan palkanmaksu, pelikokemuksen ja käytettävyyden viimeistely jne liittyvät siihen onko säikeistäminen mahdollista vai ei? Eivät mitenkään. Aivan täysin eri asioista kyse.

Kyllä näin on. Mutta kuten jo edellä mainittiin niin lähes aina jokin mainprosessi paisuu isommaksi, vaikka muita romuja saataisiinkin jaettua toisille säikeille. Tuo johtaa taas sitten suorituskyvyn sakkaamiseen.

Mikäli se yksittäinen säie Selkeästi rajoittaa, ei sovellus säikeisty kovin hyvin. Otetaan "hyvin säikeistyvä ohjelma" jossa yksi säie selvästi rajoittaa. Tämä yksi säie pitäisi saada suoritettua mahdollisimman nopeasti mutta samalla kun lisätään säikeiden määrää (=laitetaan lisää prosessoriytimiä töihin) prosessorin kellotaajuus laskee lähemmäs base clock:a jolloin tämän rajoittavan säikeen nopeus tippuu.

Tuossa tapauksessa ei voida sanoa ohjelman säikeistyvän hyvin.
 
Tässä voi myös miettiä että mitä hyötyä on laittaa suhteettoman paljon tunteja säikeistämiseen kun sekä 2700X että 9700K pyörittävät lähes kaikkia tuoreita julkaisuja sen verran hyvin että tahdin määrää lähes aina näyttis. Tai no 144hz ei välttämättä taitu mutta se on vielä vähän nicheä e-urheilun ulkopuolella.
 
Miten työnantajan palkanmaksu, pelikokemuksen ja käytettävyyden viimeistely jne liittyvät siihen onko säikeistäminen mahdollista vai ei? Eivät mitenkään. Aivan täysin eri asioista kyse.
:facepalm:
Älyät varmaan kaupallisen yrityksen toimitaperiaatteet? Hyvä. Varmaan osaat laskelmoida myös sen, että millä mentaliteetillä yritys kehittää tuotettaan, jotta yrityksen voitto saadaan maksimoitua?

Mikäli se yksittäinen säie Selkeästi rajoittaa, ei sovellus säikeisty kovin hyvin. Otetaan "hyvin säikeistyvä ohjelma" jossa yksi säie selvästi rajoittaa. Tämä yksi säie pitäisi saada suoritettua mahdollisimman nopeasti mutta samalla kun lisätään säikeiden määrää (=laitetaan lisää prosessoriytimiä töihin) prosessorin kellotaajuus laskee lähemmäs base clock:a jolloin tämän rajoittavan säikeen nopeus tippuu.

Tuossa tapauksessa ei voida sanoa ohjelman säikeistyvän hyvin.
:confused:
 
Eli säikeistystä ei rajoitakaan sen absoluuttinen vaikeus vaan se mitä pelaajat ovat valmiit maksamaan? Sitä olen koko ajan sanonutkin.

Olen sanonut samaa, tiettyyn rajaan asti. Joka on aika kaukana.

Niitä toisistaan riippumattomiin asioihin pätee ihan sama: ei se absoluuttinen vaikeus vaan...

No, jos palkkaat halvan timpurin vähäksi aikaa tekemään kotiin remonttia, niin saat tietyn lopputuloksen.
Jos taas palkaat pari kertaa kalliimman, jolle on maksettu enemmän, koska taitavampi tai palkkaat sen halvemman pidemmäksi aikaa, niin saat varmasti paremman lopputuloksen (Tiettyyn rajaan asti).

Asiakkaana kuitenkin päätät, mihin vedät rajan. Pelaajatkin ovat vetäneet rajat, joten lopputulos on se, mitä nykyään on. Pelaajalle on halvempaa ostaa esim se kalliimpi prossu, kuin maksaa kymmenien pelien hieromisesta erittäin hankalasti. Ja vastaan voi tulla jopa seinä, jolloin ei vain päästä tiettyyn suuntaan.

Prossuvalmistajat ovat nyt valinneet NIILLE halvan "monistetaan samaa" tien. PELAAVILLE asiakkaille tämän suunnan eteneminen ei ole välttämättä hyvä asia. Nyt ostetaan mielettömän moniytimisiä prossuja hommaan, jossa lisäytimistä ei tahdota saada oikein millään hyötyä.
 
Et ole tainnut lukea tätä ketjua tai konepakettisuosituksia tällä foorumilla? Jos AMD:n prosessori jää pelissä jollekin suunnilleen samanhintaiselle Intelille, ei AMD:ta voi suositella pelaamiseen. Niin se tuppaa menemään.

No jos molemmat on hinnaltaan samaa tasoa ja Intteli on parempi suorituskyvyltään niin en minäkään silloin AMD:tä suosittelisi. Mutta jos vaikka AMD häviää hiukan suorituskyvyssä ollen samaan aikaan selvästi halvempi, niin valinta ei ole sillloin kovinkaan vaikea.

@The Stilt muistaakseni esitti asiasta jonkun tietyllä ohjelmalla/codecilla olleen esimerkin, missä jonkun videokoodauksen skaalautuminen ytimien mukaan alkoi tippumaan kun mentiin 10+ ytimen lukemiin. Sitten jos on todella hyvin säikeistyvä ja muistikaistasta riippumaton kuorma niin 16-ytimistä kehiin. Tämä siis oletuksena, että sieltä tulee ko. ydinmäärillä olevat prossut ja 12-ytimisessä on 0.3-0.4 GHz enemmän kelloja kuten näissä vuodoissa/mahdollisissa fakeissa.

Jos on kova videoiden encoodaaja niin niitä videoita voi laittaa samaan aikaan vaikka 4 encoodaukseen ja jokaiselle pätkälle antaa 8 säiettä jolloin varmasti skaalautuu. Jos taas on sunnuntai encoodaaja niin tuskin sillä on hirveästi väliä että valmistuuko se pätkä 2min nopeammin.

Minä opetan työkseni "Parallel computing"-kurssia Tampereen (entisessä teknillisessä) Yliopistossa, ja olen ohjelmoinut työkseni melkein 20 vuotta.

Eikös se ole sanonta että ne opettaa jotka ei kykene kyseisen alan oikeisiin töihin? ;)

Mutta siis leipää talon pöytään koodaamalla tekevä kaveri jo vuosia sitten haukkui nyky koodarit täysin pystyyn kun ei ne osaa mitään. Kun se koodaaminen on tullut niin "helpoksi" kun on valmista kikkaretta. Sitten kun pitäisi jotain omaa luoda niin taidot loppuu siiheen ja nostetaan kädet pystyyn. Silti näitä kavereita on IT talot täynnä.
 
Mutta siis leipää talon pöytään koodaamalla tekevä kaveri jo vuosia sitten haukkui nyky koodarit täysin pystyyn kun ei ne osaa mitään. Kun se koodaaminen on tullut niin "helpoksi" kun on valmista kikkaretta. Sitten kun pitäisi jotain omaa luoda niin taidot loppuu siiheen ja nostetaan kädet pystyyn. Silti näitä kavereita on IT talot täynnä.
Pelimoottoreita ei onneksi koodaa mitkään tusinaveijarit.

Itse pelidevaakat ovat vähän vaihtelevampaa sakkia.
 
No, jos palkkaat halvan timpurin vähäksi aikaa tekemään kotiin remonttia, niin saat tietyn lopputuloksen.
Jos taas palkaat pari kertaa kalliimman, jolle on maksettu enemmän, koska taitavampi tai palkkaat sen halvemman pidemmäksi aikaa, niin saat varmasti paremman lopputuloksen (Tiettyyn rajaan asti).

Asiakkaana kuitenkin päätät, mihin vedät rajan. Pelaajatkin ovat vetäneet rajat, joten lopputulos on se, mitä nykyään on. Pelaajalle on halvempaa ostaa esim se kalliimpi prossu, kuin maksaa kymmenien pelien hieromisesta erittäin hankalasti. Ja vastaan voi tulla jopa seinä, jolloin ei vain päästä tiettyyn suuntaan.

Prossuvalmistajat ovat nyt valinneet NIILLE halvan "monistetaan samaa" tien. PELAAVILLE asiakkaille tämän suunnan eteneminen ei ole välttämättä hyvä asia. Nyt ostetaan mielettömän moniytimisiä prossuja hommaan, jossa lisäytimistä ei tahdota saada oikein millään hyötyä.

No höpö höpö, konsoleille kyllä jaksetaan hieroa pelejä eikä ne nyt NIIN kauhean paljon kalliimpia ole, lisäksi konsolipeleistä siivun vetää konsolin valmistaja. Kyllähän aikoinaan PS3 aikaan esim. kuului nurinaa että on niin vaikeaa tehä kyseiselle konsolille pelejä. Ja kyllhän niissä ensimmäisten ja elinajan loppuvaiheen pelien välillä oli melkoinen ero kun ne koodaajat oli oppinu kyseiselle purkille koodaamaan.
Eiköhän se PC puolella ole toi DX11 suurena kehityksen jarruna. Varmaan koko peliteollisuutta helpottaisi suunnattomasti jos olisi yksi rajapinta kaikille vehkeille kuten esim Vulkan. DX12 sellaista ei voi tulla.
 
No höpö höpö, konsoleille kyllä jaksetaan hieroa pelejä eikä ne nyt NIIN kauhean paljon kalliimpia ole, lisäksi konsolipeleistä siivun vetää konsolin valmistaja. Kyllähän aikoinaan PS3 aikaan esim. kuului nurinaa että on niin vaikeaa tehä kyseiselle konsolille pelejä. Ja kyllhän niissä ensimmäisten ja elinajan loppuvaiheen pelien välillä oli melkoinen ero kun ne koodaajat oli oppinu kyseiselle purkille koodaamaan.
Eiköhän se PC puolella ole toi DX11 suurena kehityksen jarruna. Varmaan koko peliteollisuutta helpottaisi suunnattomasti jos olisi yksi rajapinta kaikille vehkeille kuten esim Vulkan. DX12 sellaista ei voi tulla.

Otappa nyt huomioon, että konsoli pysyy samana, koko sen elinikänsä ajan tai jos on variaatioita (esim ps4 ja ps4 pro), niin erot on erittäin pieniä. PS3 ja PS2 taas olivat käsittääkseni ihan samoja pelien kannalta, alusta loppuun.

PC puolella taas tulee uutta ja erilaista paljon tiuhempaan tahtiin. Esim prossun coremäärien kanssa on mopot karanneet käsistä molemmilla valmistajilla ja per core suorituskyky ei ole ainankaan paranemassa, niinkuin ennemmin oli asianlaita.

Lisäksi säikeistyminen on ollut peleissä ongelma aina siitä, kun ensimmäiset 2 säiettä suorittavat kuluttajahintaiset prossut tulivat markkinoille. Vaikka ollaan edetty todella hitaasti, niin pelit ovat laahanneet perässä. Nyt kuvitellaan, että jostakin pieraistaisiin peleihin suuria muutoksia ihan yhtä-äkkiä, ilman mitään ylimääräisiä töitä, kun kaikkien pitäisi tajuta, että tuo homma etenee edelleen vähintään ihan yhtähitaasti ja asiasta on turha vaahdota vielä vuosikausiin.
 
En nyt ymmärrä miksi ylimääräinen optimointi ei muka kannattaisi. Jos pelisi näyttää paremmalta kuin huonommin pyörivä kilpailijan peli, se myy paremmin.
 
En nyt ymmärrä miksi ylimääräinen optimointi ei muka kannattaisi. Jos pelisi näyttää paremmalta kuin huonommin pyörivä kilpailijan peli, se myy paremmin.

Ja sen pitää myydä todella paljon paremmin, tuottaakseen takaisin optimointiin käytetty aika. Löytyyhän peleistä esimerkejä, jotka näyttää valmiiksi vanhentuneilta, kun pelikehitys on päässyt venähtämään. Joten jos ajatus on tehdä kovaa optimointia, niin se kuuluisi huomioida jo konseptivaiheessa, kun se siirtää suunniteltua pelin julkaisuajankohtaa, odottettua kilpailutilannetta ja pelin budjettia.
 
Ja sen pitää myydä todella paljon paremmin, tuottaakseen takaisin optimointiin käytetty aika. Löytyyhän peleistä esimerkejä, jotka näyttää valmiiksi vanhentuneilta, kun pelikehitys on päässyt venähtämään. Joten jos ajatus on tehdä kovaa optimointia, niin se kuuluisi huomioida jo konseptivaiheessa, kun se siirtää suunniteltua pelin julkaisuajankohtaa, odottettua kilpailutilannetta ja pelin budjettia.
Kerros esimerkkejä peleistä joita ei ole optimoitu kahdeksalle ytimelle? Kiitos konsolien lähes kaikki uudempaa kuin kivikautista Falloutin engineä käyttävät pelit on tehty alusta alkaen säikeistymään, koska konsoleilla 30fps jää muuten haaveeksi.
 
Kerros esimerkkejä peleistä joita ei ole optimoitu kahdeksalle ytimelle?

Mitä tarkoitetaan kahdeksalle ytimelle optimoinnilla? Jos haetaan sitä, että kaikki kahdeksan ydintä saadaan tarvittaessa saturoitua laskennalla, niin näitähän on vaikka kuinka. Mechwarrior Online, Pathfinder - Kingmaker, molemmat Pillars of Eternityt, Total War - Warhammer, MGS5 ja GTA5 tuli äkkisiltään mieleen. Näissä kaikissa CPU:n yksittäinen ydin rajoittaa menoa muiden lähinnä pyöritellessä peukaloita.
 
Mitä tarkoitetaan kahdeksalle ytimelle optimoinnilla? Jos haetaan sitä, että kaikki kahdeksan ydintä saadaan tarvittaessa saturoitua laskennalla, niin näitähän on vaikka kuinka. Mechwarrior Online, Pathfinder - Kingmaker, molemmat Pillars of Eternityt, Total War - Warhammer, MGS5 ja GTA5 tuli äkkisiltään mieleen. Näissä kaikissa CPU:n yksittäinen ydin rajoittaa menoa muiden lähinnä pyöritellessä peukaloita.
Tulikin kattaus moderneja pelejä joista osa kehitetty ps3:lle alunperin. Onko monessakin noista fx4000 yhtä hyvä kuin fx8000, vai säikeistyvätkö ne sittenkin?
 
Tulikin kattaus moderneja pelejä joista osa kehitetty ps3:lle alunperin. Onko monessakin noista fx4000 yhtä hyvä kuin fx8000, vai säikeistyvätkö ne sittenkin?

Jos nyt tarkkoja ollaan esim. Pathfinder: Kingmaker, Pillars of Eternity (ainakin 1), Total War: Warhammer I & II on kehitetty PC:lle eikä niistä taida olla PS3 versiota ikinä edes tehty ja tuskin tehdään. Pathfinder Kingmakerista kehittäjien tietämättä julkaisun aikoihin kolmas taho (joka myi peliä, Deepsilver) alkoi kertomaan että tästä tehdään myös konsoliversiot (varmaankin X-box ja viimeisin playstation).. ..ehkä sitten tekevät ellei jokin taho hanki erikseen siihen tyyppejä tekemään porttausta.

Pillars pelistä näköjään on tehty PS4 ja X-box versio (ei siis se eka X-box vaan luultavimmin viimeisin, X-box One. Myös OS-X ja Linux pitäisi olla tuettujen listalla, tiedä sitten)

Suurempi syy voisi olla se että ainakin Pillars ja Pathfinder (sekä Battletech) on tehty Unitylla. Missä pelin voi tehdä hyvin tai sitten ei jakseta panostaa ja käytetään "kunhan nyt toimii" taktiikkaa.
List of Unity games - Wikipedia

Eli se riippuu myös pelin kehittäjästä aika paljon miten optimoivat pelinsä mutta teoriassa nykyisin Unity tarjoaa tukea useammallekin ytimelle peleissä.

Unity (game engine) - Wikipedia

Jos kiinnostus heräsi niin tässä suomeksi hieman kattavampaa tietoa unitysta (2015) yhden projektin tiimoilta:
https://www.theseus.fi/bitstream/handle/10024/102732/Kivela_Miikka.pdf
 
Viimeksi muokattu:
Jos on useita tuhansia rahaa niin menee vaan ja ostaa sen i9-9900K:n ja RTX 2080 Ti:n.

Jos pelikoneeseen on tonni, niin sitten kannattaa nykyisin ostaa AMD. i5-9600K on yli satasen enemmän kuin R5 2600 ja kun sen rahan laittaa näytönohjaimeen, niin AMD-kone on nopeampi peleissä.

Kyllä on testejä, että i5-9600K on nopeampi peleissä, mutta ne erot on niin häviävän pieniä (paitsi jossain ihme peleissä, kuten CS:GO), että pienikin tehonlisäys jonnekin muualle nostaa AMD:n Intelin ohi. Vaikka tyyliin RX 570 -> RX 580 tai GTX 1060 3GB -> GTX 1060 6GB.
 
Kerros esimerkkejä peleistä joita ei ole optimoitu kahdeksalle ytimelle? Kiitos konsolien lähes kaikki uudempaa kuin kivikautista Falloutin engineä käyttävät pelit on tehty alusta alkaen säikeistymään, koska konsoleilla 30fps jää muuten haaveeksi.

Sitten on vielä optimoinnit numa arkkitehtuurille, corejen välisille viiveille, välimuistille, tomb raider tapaus jossa siivottiin vähän käskyjä ja ryzen nopeutui kummasti jne. Ynnä kuten ketjussa aiemmin oli DX11 vaatii käytännössä pääsäikeen. Vaikka peli säikeistyisikin, niin aina löytyy joku aihe valittaa "paskasti optimoitu", kun just oma kokoonpano ei pysy toisen vauhdissa.
 
Kerros esimerkkejä peleistä joita ei ole optimoitu kahdeksalle ytimelle? Kiitos konsolien lähes kaikki uudempaa kuin kivikautista Falloutin engineä käyttävät pelit on tehty alusta alkaen säikeistymään, koska konsoleilla 30fps jää muuten haaveeksi.

Ei kyse ole usein niin oleellisesti siitä, montaako ydintä peli jossain tilanteessa osaa käyttää, vaan siitä mitkä osat pelin koodista monisäikeistetään ja miten.

Jos koodissa on joku täysin rinnakkainen looppi, joka suoritetaan vaikka sata miljoonaa kertaa, sen loopin saa usein todella helposti optimoitua vaikka tuhansille säikeille näin yksinkertaisesti: #pragma omp parallel for.

Mutta jos tämän loopin ajoaika on alkuperäisessä koodissakin on vain 10% koko koodin ajoajasta, se tämän loopin tuhannelle ytimelle rinnakkaistaminen nopeuttaa koko ohjelman suoritusta vain n. 11.11%, kun kaikki se muu 90% siitä koodista ajetaan edelleen yhdessä säikeessä ja tämä yksi säie on pullonkaula.


Se, että saadaan jossain tilanteessä hyödynnettyä suuri määrä ytimiä ja se, että päästään eroon siitä yhden raskaan säikeen pullonkaulasta on täysin eri asioita.

Toki noilla konsolipeleillä on pitänyt nähdä enemmän vaivaa sen eteen, että siellä ei ole sitä yhtä raskasta säiettä, kun niiden ytimet on sen verran heikkoja. Toisaalta kuitenkin se, että tähdätään 30 FPSään eikä 60FPSään antaa aika paljon anteeksi ja sallii aika paljon hitaammat ytimet.

Ja toki, se, että aletaan hankiutumaan eroon siitä yhden säikeen pullonkaulasta ja hyödyntämään enemmän taskitason rinnakkaisuutta (eikä vain datatason rinnakkaisuuden hyödyntämistä säikeistyksellä) sitten tarkoittaa että niiden taskien määrä rajoittaa sitä ajossa olevien säikeiden määrää, ja suuremman säiemäärän käyttöönottaminen tällöin helposti tarkoittaa sitä, että taskeja pitää pilkkoa pienempiin osiin käsin.

Ja kuormanjako muodostuu helposti monimutkaiseksi ongelmaksi, jos säikeistys on jollain tavalla "epäsymmetristä".
 
Viimeksi muokattu:
Se on sitten eri asia että miksi noissa vuodoissa sille 16-ytimiselle on maksimiboostit selvästi pienemmät kuin 12-ytimiselle. Eivät kuitenkaan ne neljä lisäydintä vie idlatessakaan niin paljoa että selittäisi usean sadan megahertsin eroa tuohon suuntaan etenkin kun TDP-ero on iso ja tasan varmasti kattaa idlaavien ytimien extrakulutuksen. Vertaa 2600X vs 2700X, ei 2700X:kään jää jälkeen kelloissa missään tilanteessa. Tämän takia haisee fake hommassa.

Ottamatta kantaa huhujen todenmukaisuuteen kyse voisi olla joihinkin huhuihin sisältyneen myöhemmin mahdollisesti julkaistavan 16-ytimisen juhlapainoksen binnauksesta: enimmillään 12 ytimellä riittävän hyvin toimivia sekä 5 Ghz 1-2 ytimellä pystyviä yksilöitä voisi kuvitella olevan reippaasti enemmän kuin vastaavia joissa kaikki 16 ydintä käytettävissä (taisi tässä huhussa olla myös max 5.1 GHz boostit).
 
Miten tässä näin kävi? Oliko säikeistys sittenkään "mahdotonta"? Ei todellakaan ollut. Yksi osatekijä on tietenkin AMD:n konsoliprosessorit. 8 heikkotehoista ydintä tarkoittaa ettei tehoja saa ellei ota useampaa ydintä käyttöön. Ja kas, ongelma pitkälti ratkesi. Myös ihan satavarmasti säikeistys muuttuu maagisesti "helpommaksi" heti kun konsoleihin tulee 8+ säikeisiä prosessoreita.

Eli täysin turha jauhaa paskaa siitä kuinka säikeistys muka olisi jokin huippuvaikea homma. Laiskuudesta ja siihen liittyvistä on kyse. Historia sen osoittaa pitävästi ja kiistatta.
Kerros esimerkkejä peleistä joita ei ole optimoitu kahdeksalle ytimelle? Kiitos konsolien lähes kaikki uudempaa kuin kivikautista Falloutin engineä käyttävät pelit on tehty alusta alkaen säikeistymään, koska konsoleilla 30fps jää muuten haaveeksi.
Konsolien pelikoodaus on tosiaan helpompaa, koska on aina tunnettu rauta ja sen hyödyntäminen paremmin on mahdollista (päästän lähemmäs rautaa). Lisäksi konsolipelissä on mahdollista koodata vain 6 ytimelle (2 muuta ydintä on varattu muuhun käyttöön).

Konsolipelit koodataan yleensä ennen PC- versiota. PC: ssä on ytimien Hz: t vähintään puolta suuremmat kuin konsolissa. PC- peliä ei ole edes mahdollista koodata yhtä tehokkaaksi ed. mainituin syin (+lukemattomat eri laite ja ajuri kombot).

Joten miksi pelinkoodaja tähtäisi edes yli 6- ytimen laskentahyötyyn?
 
Joten miksi pelinkoodaja tähtäisi edes yli 6- ytimen laskentahyötyyn?
Mitä tämä mahtaa tarkoittaa PC:llä? Softaa ei kannata pistää yli kuuteen threadiin?
Ymmärtääkö täällä kaikki että 10:ssä threadissa pyörivää softaa voidaan myös yleensä ajaa single core CPU:ssa. Threadit vaan huristelee vuorotellen (ja tästä threadien synkkauksen helppoudesta varmaan hkultala voisi esitelmöidä lisää halukkaille). Käyttis huolehtii threadien paiskomisesta rinnakkain tai jonoon riippuen mitä rautaa on tarjolla ja missä on kaistaa.

Lisäksi konsolipelissä on mahdollista koodata vain 6 ytimelle
En tunne konsolipelien koodausta mutta, tästä rajoituksesta saattaa myös huolehtia konsolin käyttöjärjestelmä. Minun oletus: yhtään peliä ei koodata baremetallina nykyisille konsoleille. Korjatkaa jos olen väärässä.
 
En tunne konsolipelien koodausta mutta, tästä rajoituksesta saattaa myös huolehtia konsolin käyttöjärjestelmä. Minun oletus: yhtään peliä ei koodata baremetallina nykyisille konsoleille. Korjatkaa jos olen väärässä.

Onhan niitä sille tietylle konsolille ainoastaan julkaistavia pelejä ja niissä varmaan revitelllään aika huolella siitä laatikosta tehot irti. Mutta nää crossplatform pelit kärsii siitä kun jokaisella alustalla on oma GFX api mitä pitää tukea. Sory käyttää jotain omaa viritystä, mäkki käyttää omaa, linux käyttää omaa ja X-Box käyttää omaa. Toki DX on x-boxissa sekä PC:llä, samoin kuin linuxilla on Vulkan/OpenGL, ne löytyy myös PC:stä. Mutta mitään kaikille yhteistä graffa API:a ei ole, eli jos tuetaan useampaa alustaa niin täytyy hallita sitten useampi graffa API. Jos vaikka toi Vulkan yleistyisi kaikkiin, niin koodarien elämä varmaan helpottuisi huomattavasti. Mutta tämähän ei Mikrosoftille, Sonylle ja Applelle käy. Kun kaikkien mielestä se juuri heidän räpellyksensä on se paras.
 
:facepalm:
Älyät varmaan kaupallisen yrityksen toimitaperiaatteet? Hyvä. Varmaan osaat laskelmoida myös sen, että millä mentaliteetillä yritys kehittää tuotettaan, jotta yrityksen voitto saadaan maksimoitua?

Säikeistys kuten kaikki muutkin tehtävät asiat edustavat vaikeudeltaan kahta ääripäätä tai jotain siitä välistä. Vielä kerran:

1: asia on hyvin helppo, kuka tahansa osaa tehdä
2: asia on mahdoton, ei merkitystä kuka tekee koska asiaa ei voida tehdä

Suuri työmäärä ääripäässä 1 saadaan tehtyä nopeammin jos laitetaan lisää tekijöitä. Sen sijaan ääripäässä 2 ei ole mitään merkitystä sillä paljonko tekijöitä tai resursseja laitetaan, homma ei silti valmistu koska se ei voi valmistua.

Kun selität homman olevan rahasta kiinni, sanot samalla säikeistyksen olevan paljon lähempänä ääripäätä 1 kuin ääripäätä 2. Kun kyse oli siitä onko säikeistys vaikeaa ja itsekin myönnät sen olevan lähempänä ääripäätä 1 kuin ääripäätä 2, olet samaa mieltä siitä ettei säikeistys ole kovinkaan vaikeaa.

Kuten sanoin, ellet ymmärrä asiaa ei ole mitään merkitystä vaikka olisit ollut koodaamassa joka ikistä tietokonepeliä joka koskaan on tehty.


Taas kaksi ääripäätä:

Täydellisesti säikeistyvä ohjelma: ytimien määrän (ja kaikkien muun rajoittavien tekijöiden) kasvaessa n kertaiseksi ohjelman suoritus nopeutuu n kertaiseksi.

Ei ollenkaan säikeistyvä ohjelma: riippumatta ytimien määrän (ja kaikkien muun rajoittavien tekijöiden) kasvamisesta, ohjelman suoritus ei nopeudu.

Eli mikäli ohjelmassa on yksi säie joka selkeästi rajoittaa, se ei voi olla kovin lähellä täydellisesti säikestyvää ohjelmaa vaan menee paljon lähemmäksi toista ääripäätä. Itsestään selvä asia.

No, jos palkkaat halvan timpurin vähäksi aikaa tekemään kotiin remonttia, niin saat tietyn lopputuloksen.
Jos taas palkaat pari kertaa kalliimman, jolle on maksettu enemmän, koska taitavampi tai palkkaat sen halvemman pidemmäksi aikaa, niin saat varmasti paremman lopputuloksen (Tiettyyn rajaan asti).

Et välttämättä saa mikäli tämä kalliimpi timpuri sattuukin olemaan laiska.

Paremmin sanottuna näin: Onko kyse vaikeustasosta vai ajankäytöstä? Eli toisin sanoen, onko pystyykö halpa heppu tekemään yhtä hyvää jälkeä jos saa käyttää siihen enemmän aikaa kuin kalliimpi? Eli kalliimpi tekee tietyntasoista jälkeä nopeammin kuin halpa? Jos näin, silloin tekemistä nimenomaan ei rajoita vaikeus.

Asiakkaana kuitenkin päätät, mihin vedät rajan. Pelaajatkin ovat vetäneet rajat, joten lopputulos on se, mitä nykyään on. Pelaajalle on halvempaa ostaa esim se kalliimpi prossu, kuin maksaa kymmenien pelien hieromisesta erittäin hankalasti. Ja vastaan voi tulla jopa seinä, jolloin ei vain päästä tiettyyn suuntaan.

Prossuvalmistajat ovat nyt valinneet NIILLE halvan "monistetaan samaa" tien. PELAAVILLE asiakkaille tämän suunnan eteneminen ei ole välttämättä hyvä asia. Nyt ostetaan mielettömän moniytimisiä prossuja hommaan, jossa lisäytimistä ei tahdota saada oikein millään hyötyä.

Näillä asioilla ei ole mitään tekemistä säikeistyksen vaikeuden kanssa.

Joten miksi pelinkoodaja tähtäisi edes yli 6- ytimen laskentahyötyyn?

Tämä kysymys on juuri sellainen joka elää aikojen saatossa. Näin:

Siihen aikaan kun konsoleissa oli yhden ytimen prosessori (Megadrive, PS1 jne): "Joten miksi pelinkoodaja tähtäisi edes yli 1- ytimen laskentahyötyyn?"

Siihen aikaan kun konsoleissa oli kolmen ytimen prosessori (X-Box jne): "Joten miksi pelinkoodaja tähtäisi edes yli 3- ytimen laskentahyötyyn?"

Siihen aikaan kun konsoleissa oli kuuden ytimen prosessori (X-Box One, PS4 jne): "Joten miksi pelinkoodaja tähtäisi edes yli 6- ytimen laskentahyötyyn?"

Siihen aikaan kun konsoleissa tulee joskus olemaan n ytimen prosessori (?): "Joten miksi pelinkoodaja tähtäisi edes yli n- ytimen laskentahyötyyn?"

"Huippuhankalaa" säikeistystä pystytään paremmin tekemään kun ytimien määrä lisääntyy laitteissa. Yllättyneet:
 
Onhan niitä sille tietylle konsolille ainoastaan julkaistavia pelejä ja niissä varmaan revitelllään aika huolella siitä laatikosta tehot irti. Mutta nää crossplatform pelit kärsii siitä kun jokaisella alustalla on oma GFX api mitä pitää tukea. Sory käyttää jotain omaa viritystä, mäkki käyttää omaa, linux käyttää omaa

Linux ei käytä 3D-grafiikkaan mitään omaa. 2Dhen on sitten useampiakin eri.

ja X-Box käyttää omaa. Toki DX on x-boxissa sekä PC:llä, samoin kuin linuxilla on Vulkan/OpenGL, ne löytyy myös PC:stä. Mutta mitään kaikille yhteistä graffa API:a ei ole, eli jos tuetaan useampaa alustaa niin täytyy hallita sitten useampi graffa API. Jos vaikka toi Vulkan yleistyisi kaikkiin, niin koodarien elämä varmaan helpottuisi huomattavasti. Mutta tämähän ei Mikrosoftille, Sonylle ja Applelle käy. Kun kaikkien mielestä se juuri heidän räpellyksensä on se paras.

OpenGL toimii käytännössä kaikkialla. Se vaan on käymässä vanhaksi.

Vulkan toimii... kaikkialla muualla paitsi Applella, ja Applella ei ole mitään intressejä tukea sitä. Apple haluaa, että kaikki käyttävät heidän Metallinsa, mikä tarkoittaa lisätyötä pelien porttaamiseen Applelle.

Vulkan ja DX12 ovat kuitenkin hyvin hankalia ja työläitä rajapintoja käyttää. Molemmilla tarvitaan satoja rivejä koodia, että mitään saadaan ruudulle, siinä missä esim. OpenGL:llä riittää parikymmentä.
 
Linux ei käytä 3D-grafiikkaan mitään omaa. 2Dhen on sitten useampiakin eri.

No ei sillä kyllä Sonyn, mikrosoftin taikka applen apia ajella. Se oli pointti tuolla "omaansa"

OpenGL toimii käytännössä kaikkialla. Se vaan on käymässä vanhaksi.

Jonka takia sitä ei juurikaan kukaan käytä, eli aika lailla laskuista poissa.

Vulkan toimii... kaikkialla muualla paitsi Applella, ja Applella ei ole mitään intressejä tukea sitä. Apple haluaa, että kaikki käyttävät heidän Metallinsa, mikä tarkoittaa lisätyötä pelien porttaamiseen Applelle.

Se että jossain rootatussa konsolissa joku ajaa linuksia ja Vulkania ei tarkoita että Sony Vulkania tukisi. Vai olenko missannut jonkun uutisen jossa kerrotaan että Sony on alkanut tukemaan Vulkania?

Vulkan (kuten myös DX12) ovat kuitenkin hyvin hankalia ja työläitä rajapintoja käyttää.

Eikös lähes kaikki ole aluksi hankalaa? Kumpikohan on hankalampaa, tukea 4 eri apia, vai yhtä joka toimisi kaikilla?
 
[offtopic]

No ei sillä kyllä Sonyn, mikrosoftin taikka applen apia ajella. Se oli pointti tuolla "omaansa"

Sinulla on kumma käsitys mitä "oma"-sanalla tarkoitetaan.

Linuxilla pyörii OpenGL. Joka ei ole minkään laite- tai käyttisvalmistajan oma, vaan avoin standardi. Ja toimii käytännössä kaikkialla.

Ja itse asiassa jopa directXn saa winellä toimimaan linuxissa joiltain osin.

Jonka takia sitä ei juurikaan kukaan käytä, eli aika lailla laskuista poissa.

Käytännössä kaikki nykypelit, jotka toimii sekä windowsilla että macos X:llä, sisältää OpenGL-backendin.

Mainittakoon sellaisia "pieniä" pelitaloja kuten Valve, Paradox, Firaxis, Blizzard, jotka tekevät käytännössä kaikkiin peleihinsä myös OpenGL-backendin.

Unityssä on OpenGL-backend joten käytännössä kaikki Unityllä tehdyt pelit pyörii myös OpenGL:llä.

Ja suurin osa kaikista indie-peleistä taidetaan nykyään tehdä Unityllä.

Steamissa tuntuu olevan myynnissä Linux-/SteamOS-pelejä n. 14800 kpl, tosin tämä luku sisältää myös pelien lisäosia eli jonkin verran duplikaatteja. Taitaa suurin osa näistä toimia OpenGL:llä.

Että sinulla on aika kummallinen käsitys siitä, että "ei juurikaan kukaan käytä".

Se että jossain rootatussa konsolissa joku ajaa linuksia ja Vulkania ei tarkoita että Sony Vulkania tukisi. Vai olenko missannut jonkun uutisen jossa kerrotaan että Sony on alkanut tukemaan Vulkania?

Sony ei virallisesti, mutta epävirallista tukea on tekeillä.

Eikös lähes kaikki ole aluksi hankalaa? Kumpikohan on hankalampaa, tukea 4 eri apia, vai yhtä joka toimisi kaikilla?

Ei. Esim. OpenGL:llä saa kolmioita ruudulle aika pienellä vaivalla.

Se että tarvii kirjoittaa satoja rivejä boilerplate-koodia esimerkiksi muistinhallintaan liittyen on sellaista monimutkaisutta jota muissa apeissa kuin vulkanissa ja DX12ssa ei ole.

Mutta suurin osa peleistä tosiaan tehdään siten, että otetaan unity ja koodataan vaan sen päälle, eikä itse olla missään tekemisissä sen graffa-APIn kanssa.

[/offtopic]
 
Viimeksi muokattu:
Mitä tämä mahtaa tarkoittaa PC:llä? Softaa ei kannata pistää yli kuuteen threadiin?
Ymmärtääkö täällä kaikki että 10:ssä threadissa pyörivää softaa voidaan myös yleensä ajaa single core CPU:ssa. Threadit vaan huristelee vuorotellen (ja tästä threadien synkkauksen helppoudesta varmaan hkultala voisi esitelmöidä lisää halukkaille). Käyttis huolehtii threadien paiskomisesta rinnakkain tai jonoon riippuen mitä rautaa on tarjolla ja missä on kaistaa.
Tuo oli vain (oletus & maalaisjärjellä mietitty) pelikoodarin näkökulmasta katsottuna. Se miten sitten Windows jakaa prossuaikaa on oma juttunsa.

Kyllähän yhden ytimen multitaskaus onnistui hyvin jo vuonna 1985 ja 7MHz prossulla :tup::

" The Commodore Amiga was the first home/personal computer with a multitasking OS, back in 1985. It only had a 7 MHz Motorola 68000 processor. But look at how well multitasking worked, even on such an old and slow machine (from about 3:52 on, and again at 7:07):"

 
Tuo oli vain (oletus & maalaisjärjellä mietitty) pelikoodarin näkökulmasta katsottuna. Se miten sitten Windows jakaa prossuaikaa on oma juttunsa.

Kyllähän yhden ytimen multitaskaus onnistui hyvin jo vuonna 1985 ja 7MHz prossulla :tup::

" The Commodore Amiga was the first home/personal computer with a multitasking OS, back in 1985. It only had a 7 MHz Motorola 68000 processor. But look at how well multitasking worked, even on such an old and slow machine (from about 3:52 on, and again at 7:07):"



Amigassa oli lisäksi "vähän" muutakin kuin se yksi prosessori. Paljon kehittyneempi aikanaan kuin IBM PC, joka pääsi valtaan vain koska oli IBM. Harmi kyllä.
 
Amigassa oli lisäksi "vähän" muutakin kuin se yksi prosessori. Paljon kehittyneempi aikanaan kuin IBM PC, joka pääsi valtaan vain koska oli IBM. Harmi kyllä.

Amiga kuoli vain ja ainoastaan, koska se oli commodoren oma formaatti ja commodore lopetti sen järkevän kehittämisen.
Siitä vain ajettiin ohi sekä käyttis, että ensin rautatasolla.
 
Amiga kuoli vain ja ainoastaan, koska se oli commodoren oma formaatti ja commodore lopetti sen järkevän kehittämisen.
Siitä vain ajettiin ohi sekä käyttis, että ensin rautatasolla.

Niinhän siinä kävi. Kaikenlaisia huhuja (vai oliko tietoja) oli siitäkin ettei tuotu uusia malleja niin nopeasti kuin olisi voitu. Huonoa johtamista jos niin oli.
 
Ei sillä ole mitään väliä vaikka olisit koodannut 100 tietokonepeliä. Ei se tarkoita että kaikki väitteesi pelikoodauksesta on aina oikein.

Eihän siitä hirveän kauaa ole kun selitettiin säikeistyksen peleissä olevan todella vaikeaa saada toteutettua. Siihen aikaan kuin about jokainen peli käytti yhtä säiettä. Eipä tosin prosessoreissakaan ollut kuin yksi ydin.

Entäs nyt sitten? Olisi hyvin hauska nähdä kuinka "hyvin" pelit toimivat yhden ytimen prosessoreilla. Moni ei edes suostuisi käynnistymään.

Miten tässä näin kävi? Oliko säikeistys sittenkään "mahdotonta"? Ei todellakaan ollut. Yksi osatekijä on tietenkin AMD:n konsoliprosessorit. 8 heikkotehoista ydintä tarkoittaa ettei tehoja saa ellei ota useampaa ydintä käyttöön. Ja kas, ongelma pitkälti ratkesi. Myös ihan satavarmasti säikeistys muuttuu maagisesti "helpommaksi" heti kun konsoleihin tulee 8+ säikeisiä prosessoreita.

Eli täysin turha jauhaa paskaa siitä kuinka säikeistys muka olisi jokin huippuvaikea homma. Laiskuudesta ja siihen liittyvistä on kyse. Historia sen osoittaa pitävästi ja kiistatta.
Pidetääs ne maalitolpat paikoillaan ja seistään omien sanojen takana.:swait:
 
Pidetääs ne maalitolpat paikoillaan ja seistään omien sanojen takana.:swait:

Mitä maalitolppia tällä kertaa muka siirsin? Ja missä kohtaa en ole ollut sanojeni takana?

Ennemminkin muut siirsivät maalitolppia. Säikeistyksen vaikeudesta siirryttiin selittämään kuinka yritysten pitää tehdä voittoa ja muuta jolla ei ole Mitään tekemistä vaikeuden kanssa.
 
Prossuvalmistajat ovat nyt valinneet NIILLE halvan "monistetaan samaa" tien. PELAAVILLE asiakkaille tämän suunnan eteneminen ei ole välttämättä hyvä asia. Nyt ostetaan mielettömän moniytimisiä prossuja hommaan, jossa lisäytimistä ei tahdota saada oikein millään hyötyä.

Tämä tie on kyllä valittu enemmän valmistustekniikan ja fysiikan lakien rajoitteiden mukaan. Tämä on siis ainoa suunta joka etenee, ja toivottavasti siitä on pelaajillekin hyötyä, koska vaihtoehdot ovat vähissä.

Etenkin kun pelaajat eivät ole valmiita niistä prosessoreistakaan maksamaan kymppitonneja, jos lähdetään pois toimivasta ja testatusta massavalmistettavasta Si-CMOS piiristä.
 
Tämä tie on kyllä valittu enemmän valmistustekniikan ja fysiikan lakien rajoitteiden mukaan. Tämä on siis ainoa suunta joka etenee, ja toivottavasti siitä on pelaajillekin hyötyä, koska vaihtoehdot ovat vähissä.

Etenkin kun pelaajat eivät ole valmiita niistä prosessoreistakaan maksamaan kymppitonneja, jos lähdetään pois toimivasta ja testatusta massavalmistettavasta Si-CMOS piiristä.
Voidaan sanoa, että prossunvalmistajat ovat laiskoja, joten eivät vain viitsineet nähdä vaivaa..Ihan samoin tähän käy sama loru, kuin tuohon koodarit ovat laiskoja virteen..
 
Voidaan sanoa, että prossunvalmistajat ovat laiskoja, joten eivät vain viitsineet nähdä vaivaa..Ihan samoin tähän käy sama loru, kuin tuohon koodarit ovat laiskoja virteen..

Kyllä aikanaan oli hienoa seurata esim. Amigan demo skenen tekeleitä kun kollit intohimoisesti väänti viimeisetkin mehut koneesta pihalle. Se oli sitä oikeaa koodaamista ja loppuun asti optimointia.
Toista on nykyisin kun ei enää osata mitään omaa tehdä vaan käytetään valmiista pöydästä vain sopivia paloja. Sitten tuotokset on sen mukaisia, eli tehosyöppöjä sätöksiä.
 
Kyllä aikanaan oli hienoa seurata esim. Amigan demo skenen tekeleitä kun kollit intohimoisesti väänti viimeisetkin mehut koneesta pihalle. Se oli sitä oikeaa koodaamista ja loppuun asti optimointia.
Toista on nykyisin kun ei enää osata mitään omaa tehdä vaan käytetään valmiista pöydästä vain sopivia paloja. Sitten tuotokset on sen mukaisia, eli tehosyöppöjä sätöksiä.
Lienee vaikuttaa asiaan, että Amiga-aikoihin tietokoneilu kuluttajapuolella oli aikasta marginaalitason hommaa ja nykyään megabisnes -> rahamaailman säännöt ohjailevat aika vahvasti mitä ja milloin pitää saada ulos. Kyllä, tässäkin siinä mielessä "ennen oli paremmin" mutta jos vaihtoehtona on pelata huippuunsa optimoitua peliä Amigalla tai vähemmän optimoitua, modernia peliä nykyraudalla, niin valitsen jälkimmäisen :think:
 
Lienee vaikuttaa asiaan, että Amiga-aikoihin tietokoneilu kuluttajapuolella oli aikasta marginaalitason hommaa ja nykyään megabisnes -> rahamaailman säännöt ohjailevat aika vahvasti mitä ja milloin pitää saada ulos. Kyllä, tässäkin siinä mielessä "ennen oli paremmin" mutta jos vaihtoehtona on pelata huippuunsa optimoitua peliä Amigalla tai vähemmän optimoitua, modernia peliä nykyraudalla, niin valitsen jälkimmäisen :think:
Tähän päälle nykypelien koko ja vaatimustaso. Vaikka tuo koodaaminen on tehtykin helpoksi niin siitä huolimatta isoilla pelifirmoilla menee miljoona työtuntia parhaillaan siihen vääntämiseen. Muuttujia noissa on lisäksi niin valtavasti, että mitenkään niitä ei kyetä kaikkia optimoimaan ja siihen päälle yleensä aloitetaan jo seuraava kehitysprojekti.
 
[offtopic]

Kyllä aikanaan oli hienoa seurata esim. Amigan demo skenen tekeleitä kun kollit intohimoisesti väänti viimeisetkin mehut koneesta pihalle. Se oli sitä oikeaa koodaamista ja loppuun asti optimointia.
Toista on nykyisin kun ei enää osata mitään omaa tehdä vaan käytetään valmiista pöydästä vain sopivia paloja. Sitten tuotokset on sen mukaisia, eli tehosyöppöjä sätöksiä.

Vähän eri asia optimoida miljoonia rivejä koodia kuin 1000 riviä koodia, josta joku 10 rivin looppi vie 90% suoritusajasta.

Ja vähän eri asia optimoida yhdelle tasan tarkkaan tunnetulle raudalle kuin saada se toimimaan nopeasti käytännössä äärettömällä määrällä erilaisia kokoonpanoja.

Ja demoissa voi huijata todella paljon, kun asioita voi laskea ennakolta ja niitä katsotaan vain yhdestä suunnasta jne.

Sitä "viimeiset mehut koneesta pihalle"-koodausta tehdään nykyään ehkä jopa ENEMMÄN kuin Amiga-aikoina. Se vaan on tavalliselta pulliaiselta piilossa, kun se tehdään jollekin DSPlle joka pyörittää kännykässä videokoodekkia tai 4g-toteutusta. Ja kun sen lisäksi tehdään paljon enemmän sitä "massakoodausta" jossa suorituskyvystä ei piitata.

[/offtopic]
 
Mitä maalitolppia tällä kertaa muka siirsin? Ja missä kohtaa en ole ollut sanojeni takana?

Ennemminkin muut siirsivät maalitolppia. Säikeistyksen vaikeudesta siirryttiin selittämään kuinka yritysten pitää tehdä voittoa ja muuta jolla ei ole Mitään tekemistä vaikeuden kanssa.

Vaikeus ja yrityksen kannattavuus kulkevat käsikädessä. Jos hierotaan koodia jollekin systeemille, joka on joskus ehkä tulevaisuudessa, vaikka nykyisillä systeemeillä toimii täysin tai hierotaan, jotta osalla toimisi vähän paremmin, niin kyllähän siinä menee aika täysin hukkaan, joka tarkoittaa voittojen ja kannattavuuden pienenemistä. Se huonosti säikeistyvän asian säikeistämisyritys kun ei ikinä ole helppoa ja voi olla jopa mahdotonta. Koodarin ei tarvitse olla "laiska", niin kuin täällä vaahdotaan. Koodari tekee niinpaljon, kun käsketään ja yleensä ei välttämättömään, erittäin vaikeaan nypläykseen, jos se ei ole selkeä, välitön kilpailuetu ei juuri käytetä resursseja. Jos joku käy hieromaan aiaa, jota ei pidetä välttämättömänä, asiaa katsotaan jonkunaikaa ja sitten tilalle otetaan joku muu.
 
Vaikeus ja yrityksen kannattavuus kulkevat käsikädessä. Jos hierotaan koodia jollekin systeemille, joka on joskus ehkä tulevaisuudessa, vaikka nykyisillä systeemeillä toimii täysin tai hierotaan, jotta osalla toimisi vähän paremmin, niin kyllähän siinä menee aika täysin hukkaan, joka tarkoittaa voittojen ja kannattavuuden pienenemistä. Se huonosti säikeistyvän asian säikeistämisyritys kun ei ikinä ole helppoa ja voi olla jopa mahdotonta. Koodarin ei tarvitse olla "laiska", niin kuin täällä vaahdotaan. Koodari tekee niinpaljon, kun käsketään ja yleensä ei välttämättömään, erittäin vaikeaan nypläykseen, jos se ei ole selkeä, välitön kilpailuetu ei juuri käytetä resursseja. Jos joku käy hieromaan aiaa, jota ei pidetä välttämättömänä, asiaa katsotaan jonkunaikaa ja sitten tilalle otetaan joku muu.

Vaikeus ja kannattavuus ovat eri asioita. Vaikeus: asia pystytään tekemään/ei pystytä tekemään. Kannattavuus: asia pystytään tekemään kannattavasti/ei pystytä tekemään kannattavasti. Rajattomalla budjetilla ei tarvitse miettiä kannattavuutta jolloin jäljelle jää se pystytäänkö tekemään vai ei (eli vaikeus).

Koodari todennäköisesti tekee niin paljon kuin käsketään JA myös sitä mitä käsketään. Laiskuuteen liittyy myös raha ja melko yleispätevä keino poistaa laiskuutta on lisätä rahaa (eli käytännössä palkkaa). Jossain vaiheessa loppuu koodaajalta aikakin kesken jolloin voidaan siirtyä siihen palkataanko lisää porukkaa ja palkonko.

Tässä sotketaan kaksi asiaa: vaikeus ja työmäärä. Jälkimmäisen voi poistaa rajattomalla budjetilla. Eli: pitäisi tehdä hyvin säikeistyvä räiskintäpeli. On rajattomasti rahaa käytössä. Onnistuuko? Jos ei, silloin säikeistetyn räiskintäpelin tekeminen on liian vaikeaa ja sen tekemistä rajoittaa vaikeus. Jos onnistuu, silloin kyse on jostakin aivan muusta kuin vaikeudesta (laiskuus, halvempaa käyttää vanhaa pelimoottoria, halvempaa kun ei säikeistetä kunnolla, nopeampaa kun ei säikeistetä kunnolla jne). Työmäärä rajoittaa monesti paljon enemmän kuin vaikeus. Helposta hommasta ei välttämättä saa kannattavaa jos työmäärä on liian suuri ja tekijöille pitäisi antaa jotain kompensaatiota (kuten palkkaa).
 
[offtopic]



Sinulla on kumma käsitys mitä "oma"-sanalla tarkoitetaan.

Linuxilla pyörii OpenGL. Joka ei ole minkään laite- tai käyttisvalmistajan oma, vaan avoin standardi. Ja toimii käytännössä kaikkialla.

Ja itse asiassa jopa directXn saa winellä toimimaan linuxissa joiltain osin.



Käytännössä kaikki nykypelit, jotka toimii sekä windowsilla että macos X:llä, sisältää OpenGL-backendin.

Mainittakoon sellaisia "pieniä" pelitaloja kuten Valve, Paradox, Firaxis, Blizzard, jotka tekevät käytännössä kaikkiin peleihinsä myös OpenGL-backendin.

Unityssä on OpenGL-backend joten käytännössä kaikki Unityllä tehdyt pelit pyörii myös OpenGL:llä.

Ja suurin osa kaikista indie-peleistä taidetaan nykyään tehdä Unityllä.

Steamissa tuntuu olevan myynnissä Linux-/SteamOS-pelejä n. 14800 kpl, tosin tämä luku sisältää myös pelien lisäosia eli jonkin verran duplikaatteja. Taitaa suurin osa näistä toimia OpenGL:llä.

Että sinulla on aika kummallinen käsitys siitä, että "ei juurikaan kukaan käytä".



Sony ei virallisesti, mutta epävirallista tukea on tekeillä.



Ei. Esim. OpenGL:llä saa kolmioita ruudulle aika pienellä vaivalla.

Se että tarvii kirjoittaa satoja rivejä boilerplate-koodia esimerkiksi muistinhallintaan liittyen on sellaista monimutkaisutta jota muissa apeissa kuin vulkanissa ja DX12ssa ei ole.

Mutta suurin osa peleistä tosiaan tehdään siten, että otetaan unity ja koodataan vaan sen päälle, eikä itse olla missään tekemisissä sen graffa-APIn kanssa.

[/offtopic]

Alkaa olemaan nykyään jo ennemmän poikkeus jos natiiviksi linuxsoftaksi portattu peli toimisi opengl:llä vulkanin sijaan. Toisekseen winen wined3d eli dx -> openGL on yleisesti hyvä ja käytössä directx 9 peleihin asti. Siitä eteenpäin käytetään vulkania, DXVK: d3d10/d3d11 -> Vulkan ja VKD3D: d3d12 -> Vulkan. Apple on jääräpää jolla on metallinsa, mutta sillekkin on khronosin MoltenVK ajamaan vulkania metallin päällä. Sitten on toki Googlen Android ja Nintendo Switch, jotka tukevat nykyään Vulkania.

OpenGL pelikäytössä alkaa olemaan siis pikkuhiljaa historiaa(Ja oikeastaan hyvä niin). Ammattilaissoftat sitä vielä jonkin verran käyttää ja kyllähän sitä vielä kehitetäänkin aktiivisesti. MM. nvidia tuo RTX:nsä myös OpenGL:lle(Ray tracing, mesh shaders, yms. turing laajennokset).
 
Vaikeus ja kannattavuus ovat eri asioita. Vaikeus: asia pystytään tekemään/ei pystytä tekemään. Kannattavuus: asia pystytään tekemään kannattavasti/ei pystytä tekemään kannattavasti. Rajattomalla budjetilla ei tarvitse miettiä kannattavuutta jolloin jäljelle jää se pystytäänkö tekemään vai ei (eli vaikeus).

Koodari todennäköisesti tekee niin paljon kuin käsketään JA myös sitä mitä käsketään. Laiskuuteen liittyy myös raha ja melko yleispätevä keino poistaa laiskuutta on lisätä rahaa (eli käytännössä palkkaa). Jossain vaiheessa loppuu koodaajalta aikakin kesken jolloin voidaan siirtyä siihen palkataanko lisää porukkaa ja palkonko.

Paras tapa lisätä laiskuutta on pyytää insinööriä tekemään jotain täysin järjetöntä. Tämä kuulostaa nyt aika vahvasti siltä.

Toisin kuin b-luokan manageri käsittää myös itse koodaus on toimenpide joka ei rinnakkaistu rajatta. Porukan palkkaaminen ei siis auta mitään tai pahimmillaan vain hidastaa.
 
Kyllä aikanaan oli hienoa seurata esim. Amigan demo skenen tekeleitä kun kollit intohimoisesti väänti viimeisetkin mehut koneesta pihalle. Se oli sitä oikeaa koodaamista ja loppuun asti optimointia.
Toista on nykyisin kun ei enää osata mitään omaa tehdä vaan käytetään valmiista pöydästä vain sopivia paloja. Sitten tuotokset on sen mukaisia, eli tehosyöppöjä sätöksiä.

Suomen demoskenetaustan takia Suomessa on pelitustudioita kuten Remedy joka vääntää pelinsä omalla enginellä (Northlight) sen sijaan, että käyttäysi Unityä kuten melkeen kaikki nykyään. Toki ei se Northlight kaikessa ole ylivoimainen Unityyn nähden, mutta siinä on juttuja mitä ei koskaan Unity peleissä näe.

Ja sitten TOPIC aiheeseen:

Olen itse harkinnut vakavasti, että otan seuraavaan koneen AMD prossun, koska intelin ylivalta vatuttaa vaikka sinällään single core nopeuksissa AMD on jäänyt jälkeen, mutta se on riittävän hyvä kuitenkin. Toivattavasti en tule katumaan yhteensopivuusongelmien takia.
 

Statistiikka

Viestiketjuista
259 290
Viestejä
4 502 928
Jäsenet
74 378
Uusin jäsen
Shadowman

Hinta.fi

Back
Ylös Bottom