Kuulen ihmisten käyttävän FPGA-tekniikoita sellaisten järjestelmien suorituskyvyn parantamiseen, jotka tekevät esimerkiksi kolikoiden louhintaa, sähköistä kaupankäyntiä ja proteiinien taittamista.
Kuinka FPGA voi kilpailla suorittimen kanssa suorituskyvyn suhteen, kun suoritin yleensä toimii vähintään suuruusluokkaa nopeammin (kellonopeuden suhteen)?
Kommentit
- FPGA tekee kaiken kerralla.
Vastaa
CPU ”S ovat peräkkäisiä prosessointilaitteita. Ne hajottavat algoritmin toimintosarjaksi ja suorittavat ne yksi kerrallaan.
FPGA: t ovat (tai voidaan määrittää) rinnakkaisina käsittelylaitteina. Koko algoritmi voidaan suorittaa yhdellä kellon rastiellä, tai pahimmassa tapauksessa paljon vähemmän kelloputkia kuin se tarvitsee peräkkäisen prosessorin. Yksi lisääntyneen logiikan monimutkaisuuden kustannuksista on tyypillisesti alaraja, jolla laitetta voidaan kellottaa.
Edellä mainitut huomioon ottaen FPGA voi ylittää tiettyjä tehtäviä suorittavien suorittimien suorituskyvyn, koska ne voivat sama tehtävä vähemmän kellotaajuuksilla, vaikkakin pienemmällä kellotaajuudella. Saavutettavat voitot riippuvat suuresti algoritmista, mutta ainakin suuruusluokka ei ole epätyypillinen FFT: n kaltaiselle.
Lisäksi, koska voit rakentaa useita rinnakkaisia suoritusyksiköitä FPGA: ksi, Jos sinulla on suuri tietomäärä, jonka haluat kulkea saman algoritmin läpi, voit jakaa tiedot rinnakkaisten suoritusyksiköiden kesken ja saada lisää suuruusluokkaa suurempia suoritustehoja kuin voidaan saavuttaa jopa moniytimisellä suorittimella.
Etuista maksamasi hinta on virrankulutus ja $$$ ”s.
Kommentit
- +1; FPGA: t eivät ole yhtä dynaamisia kuin suorittimet, minkä vuoksi prosessorit soveltuvat yleensä paremmin tietokoneille
- ” Etuista maksamasi hinta on virrankulutus ja $$$ ’ s. ” – Tämä on usein totta, mutta voit voittaa korkealuokkaisen, monen 1000 dollarin Intel Xeon -koneen edullinen 50 dollaria Xilinx Spartan-6 monia algoritmeja. Mutta se vie yleensä paljon suunnitteluaikaa, ja saatat päätyä erittäin mukautettuun suunnitteluun, joka toimii vain yhdessä sovelluksessa ja jota on vaikea muuttaa. Joten kompromissi ei ole vain valtaa ja rahaa, vaan algoritmin kehitysaika, uudelleenkäytettävyys ja joustavuus. (Vaikka voit kiistellä aikaa == rahaa.)
- markt, viimeisestä lauseestasi, ei ole ’ t FPGA: ta paljon pienempi teho kuin suorittimia? Sekä suorittimille että FPGA-laitteille on laaja valikoima laitteita, mutta jos tarkastelemme laitteita, joita käytetään esimerkiksi bittikolikoiden louhintaan, älä ’ t näihin käytettyjä suorittimia tehtävät, jotka ovat paljon nälkäisempiä kuin FPGA: t, joita käytettäisiin?
- @David: Kun puhutaan Bitcoin-kaivoksesta, asiaankuuluva metriikka on hajautusten määrä wattia kohti. Markt puhuu kokonaisenergiankulutuksesta. Eli tietty FPGA voi kuluttaa 3 kertaa tyypillisen suorittimen tehon, mutta olla paljon yli 3 kertaa nopeampi Bitcoin-kaivoksessa; joten Bitcoinille ’ voittaa.
- @Billy: hashien määrä wattia kohti · sekunti, ei wattia kohti.
Vastaa
Marktilla on tämä enimmäkseen oikeus, mutta aion heittää 2 senttiä täällä:
Kuvittele, että kerroin sinulle, että halusin kirjoittaa ohjelman, joka käänsi 32-bittisen kokonaisluvun sisällä olevan bittien järjestyksen. Jotain tältä:
int reverseBits(int input) { output = 0; for(int i = 0;i < 32;i++) { // Check if the lowest bit is set if(input & 1 != 0) { output = output | 1; // set the lowest bit to match in the output! } input = input >> 1; output = output << 1; } return output; }
Nyt toteutukseni ei ole tyylikäs, mutta olen varma, että olet samaa mieltä siitä, että tähän liittyy jonkin verran toimintoja ja todennäköisesti jonkinlainen silmukka. Tämä tarkoittaa, että CPU: ssa olet käyttänyt paljon enemmän kuin yhden jakson tämän toiminnon toteuttamiseen.
FPGA: ssa voit kytkeä tämän yksinkertaisesti salpana. Saat tietosi johonkin rekisteriin, sitten yhdistät sen toiseen rekisteriin päinvastaisessa bittijärjestyksessä. Tämä tarkoittaa, että toiminto suoritetaan FPGA: ssa yhdellä kellojaksolla. Siten FPGS on yhden jakson aikana suorittanut toiminnon, jonka suorittamiseen yleiskäyttöinen keskusyksikkösi vei tuhansia jaksoja! Lisäksi voit kytkeä todennäköisesti muutama sata näistä rekistereistä rinnakkain. Joten jos voit siirtyä muutamalla sadalla numerolla FPGA: lle, se suorittaa yhden jakson aikana tuhannet operaatiot satoja kertoja, kaikki yhdessä FPGA-kellosyklissä.
On monia asioita, joita yleiskäyttöinen keskusyksikkö pystyy, mutta rajoituksena olemme asettaneet yleistetyt ja yksinkertaiset ohjeet, joiden on välttämättä laajennettava yksinkertaisten ohjeiden luetteloiksi joidenkin tehtävien suorittamiseksi. Joten voisin tehdä yleiskäyttöiselle CPU: lle käskyn, kuten ”käänteinen bittijärjestys 32-bittiselle rekisterille” ja antaa CPU: lle saman kyvyn kuin juuri rakentama FPGA, mutta tällaisia mahdollisia hyödyllisiä ohjeita on ääretön määrä, ja niin me laittaa vain ne, jotka takaavat kustannukset suosituissa suorittimissa.
FPGA: t, CPLD: t ja ASIC: t antavat sinulle pääsyn raakalaitteistoon, jonka avulla voit määrittää hulluja toimintoja, kuten ”purkaa AES256-salatut tavut avaimella” tai ”dekoodaa h.264-videon kehys”. Näiden viiveet ovat FPGA: ssa enemmän kuin yhden kellosyklin, mutta ne voidaan toteuttaa paljon tehokkaammilla tavoilla kuin kirjoittamalla operaatio miljooniin riviin yleiskokoiseen kokoonpanokoodiin. Tällä on etuna myös se, että kiinteän käyttötarkoituksen omaavasta FPGA / ASIC: stä tehdään monille näistä toiminnoista virransäästötekijöitä, koska niiden ei tarvitse tehdä niin paljon ylimääräistä työtä!
Rinnakkaisuus on toinen osa, joka merkitsee huomautti, ja vaikka se on myös tärkeää, tärkeintä on, kun FPGA rinnastaa jotain, joka oli jo kallis prosessorissa toiminnan suorittamiseen tarvittavien jaksojen suhteen. Kun aloitat sanonnan ”Voin suorittaa 10 FPGA-jaksossa a tehtävä, joka vie CPU: n 100 000 jaksoa, ja voin tehdä tämän tehtävän rinnakkain 4 kohdetta kerrallaan, ”voit helposti nähdä, miksi FPGA voisi olla helvetti paljon nopeampi kuin CPU!
Joten miksi emme käytä FPGA-, CPLD- ja ASIC-tiedostoja kaikkeen? Koska yleensä se on koko siru, joka ei tee muuta kuin yhtä toimintoa. Tämä tarkoittaa sitä, että vaikka saat prosessin suorittamaan useita suuruusluokkia nopeammin FPGA / ASIC-laitteellasi, et voi muuttaa sitä myöhemmin, kun kyseinen toiminto ei ole enää hyödyllinen. Syy, miksi FPGA: ta ei (yleensä) voida muuttaa kerran piirissä on se, että liitännän johdotus on kiinteä, ja normaalisti piiri ei sisällä komponentteja, joiden avulla voit ohjelmoida FPGA: n uudelleen hyödyllisemmäksi kokoonpanoksi. Jotkut tutkijat yrittävät rakentaa hybridi-FPGA-CPU-moduuleja, joissa on osa CPU: sta, joka voidaan kytkeä / ohjelmoida uudelleen kuten FPGA, jolloin voit ”ladata” tehokkaan osan suorittimesta, mutta mikään näistä ovat koskaan päässeet markkinoille (sikäli kuin olen tietoinen).
Kommentit
- Esimerkki bittien kääntämisestä (ja kaikki muut bitit) Vaihda / valintatehtäviä) se ei ’ t vie oikeastaan 1 kellojaksoa, se vie 0. Esimerkissäsi tarvitaan 1 kellojakso tietojen tallentamiseksi salppaan , joka ei ole sama operaatio. Se vie yhden kellosyklin riippumatta siitä, käännätkö bitit vai ei. Bittien kääntäminen on 0 kellojaksoa; ei yleiskustannuksia, vain erilainen reititys. Ero ei ole vain semantiikka, varsinkin kun aloitat asioiden yhteenlaskemisen. Esimerkiksi kuinka kauan kestää 32-bittisen sanan siirtäminen 3 bittiä alaspäin, sitten kaikkien muiden napauttaminen ja sitten kääntäminen?
- ” hybridi FPGA-CP U-moduuli ” – nämä ovat olleet markkinoilla pitkään (katso xilinx.com/products/silicon-devices/ soc / zynq-7000 / index.htm nykyaikaiselle onnistuneelle), mutta jopa ilman erityistä tukea ohjelmistojen yhdistäminen & HDL tapahtuu yleensä toteuttamalla pehmeä CPU sisäpuolella kankaan FPGA.
- @wjl Sinulla on ’ oikeassa, että itse toiminnon suorittaminen ei teknisesti vie jaksoja. Väitän, että esimerkkisi on kuitenkin vain semanttisesti erilainen, lähinnä siksi, että näiden kolmen operaation tekeminen kääntyy loogisesti kiinteään bittikuvioon (ts. Aloitan b1b2b3b4: llä ja lopetan b3b1b4b2: lla). Tämä oli eräänlainen mielipiteeni koko vastauksessa. Yritin huomauttaa, että operaation kuvaaminen sarjana tarvitaan usein vain, kun sinulla on kiinteä käskyjoukko / porttijärjestely.
- @wjl: David-Gardner esitti kysymyksen, hän näyttää sanovan ” CPU ” vastaa Intelin tai AMD x86 / x86_64: n erittäin kellotettua, putkistettua ja optimoitua prosessoria. Pehmeitä ” -prosessoreita on ”, mutta enkä niitä, jotka on suunniteltu istumaan FPGA: ssa, ei voida kellottaa kuin i7, eivätkä ne ole ne ovat lähes yhtä optimoituja tai kykeneviä. Hybridien osalta tarkoitin enemmän jotain tällaista: newsroom.intel.com/docs/DOC-1512 joka ilmeisesti on olemassa
- Zynq ei todellakaan ole ’ t liian huono prosessori (ARM Cortex-A9 – sama asia, joka käyttää taulutietokoneita jne.), Mutta olen samaa mieltä siitä, että olisi paljon mahtavampaa saada integroitu FPGA suurella nopeudella x86_64. =)
vastaus
Kaikki muut tässä esitetyt suositut vastaukset puhuvat kirjaimellisista eroista FPGA: n ja suorittimen välillä. He huomauttavat FPGA: n rinnakkaisluonteen CPU: n peräkkäisestä luonteesta tai antavat esimerkkejä siitä, miksi tietyt algoritmit voivat toimia hyvin FPGA: lla. Kaikki nämä ovat hyviä ja totta, mutta ehdotan kuitenkin, että suorittimien ja FPGA: iden välillä on perustavanlaatuisempi ero.
Mikä on yhteinen nimittäjä FPGA: n ja suorittimen välillä? Ne ovat molemmat rakennettu piin päälle. Ja joissakin tapauksissa kirjaimellisesti samat piiprosessit.
Perusero on abstraktit, jotka kasataan tuon piin päälle. Yhden ihmisen ei ole mahdollista ymmärtää yhden modernin CPU-suunnittelun yksityiskohtia piistä pakattuun IC: hen. Joten osana suunnitteluprosessia jaamme tämän monimutkaisen ongelman pienemmiksi hallittaviksi ongelmiksi, joiden ympärille ihmiset voivat kietoa päänsä.
Harkitse, mitä tarvitaan piin muuttamiseksi toimivaksi prosessoriksi. Tässä on hieman yksinkertaistettu näkymä tavoitteen saavuttamiseksi tarvittavista abstraktiokerroksista:
-
Ensinnäkin meillä on insinöörejä, jotka osaavat luoda transistoreita piistä. He osaavat suunnitella pieniä transistoreita, jotka siemaavat tehoa ja vaihtavat 10 tai jopa 100 gigahertsin nopeudella, ja osaavat suunnitella lihaksikkaat transistorit, jotka voivat ohjata signaaleja riittävällä voimalla lähettääkseen ne IC-paketista ja piirilevystä toiseen siruun.
-
Sitten meillä on digitaalisen logiikan suunnittelijoita, jotka osaavat laittaa nämä transistorit yhteen kirjastoihin, joissa on satoja erilaisia logiikkasoluja. Loogiset portit, varvastossut, muhvit ja lisäosat muutamia mainitakseni. Kaikki eri kokoonpanoissa.
-
Seuraavaksi meillä on useita insinöörien ryhmiä, jotka osaavat laittaa nämä digitaaliset (ja joskus analogiset) lohkot yhteen muodostaakseen korkeamman tason toiminnalliset lohkot kuin suurten nopeuksien lähetin-vastaanottimet, muistin ohjaimet, haaran ennakoijat, ALU: t jne.
-
Sitten meillä on CPU-suunnittelijoita, jotka suunnittelevat huippuluokan CPU-malleja vetämällä nämä toiminnalliset yksiköt kokonaiseksi järjestelmäksi.
Ja se ei lopu tähän. Tässä vaiheessa meillä on toimiva CPU, joka suorittaa kokoonpanokoodia, mutta sitä kieltä useimmat ohjelmoijat kirjoittavat nykyään.
- Meillä saattaa olla C-kääntäjä, joka kääntyy kokoonpanoon koodi (luultavasti jonkin väliesityksen kautta)
- Voisimme lisätä toisen abstraktin C: n päälle saadaksesi olio-kielen
- Voimme jopa kirjoittaa virtuaalikoneen C: n tai C ++: n päälle jotta voimme tulkita asioita, kuten Java-tavukoodi
Ja abstraktikerrokset voivat siirtyä sieltä. Tärkeä asia tässä on se, että nämä abstraktiokerrokset yhdistävät CPU-pohjaisen järjestelmän, joka skaalautuu massiivisesti ja maksaa pienen osan mukautetusta piisuunnittelusta.
TÄRKEÄÄ tässä yhteydessä on kuitenkin se, että jokainen abstraktio aiheuttaa myös kustannuksia. Transistorisuunnittelija ei rakenna täydellistä transistoria jokaiseen käyttötarkoitukseen. Hän rakentaa kohtuullisen kirjaston, joten joskus käytetään transistoria, joka kuluttaa vähän enemmän virtaa tai vähän enemmän piitä kuin mitä todella tarvitaan käsiteltävään työhön. Samoin logiikkasuunnittelijat eivät rakenna kaikkia mahdollisia logiikkasoluja. He saattavat rakentaa 4-tuloisen NAND-portin ja 8-sisäänmenon NAND-portin, mutta mitä tapahtuu, kun toinen insinööri tarvitsee 6-sisääntulevan NAND-portin? Hän käyttää 8-sisääntuloa NAND-porttia ja sitoo 2 käyttämätöntä tuloa, mikä johtaa pii-resurssien ja vyötärön menettämiseen. Ja niin se kulkee abstraktioiden ketjussa. Jokainen kerros antaa meille tavan käsitellä monimutkaisuus, mutta samalla veloittaa ylimääräiset lisäkustannukset piin ja tehon suhteen.
Vertaa nyt näitä abstraktioita FPGA: n edellyttämiin. Pohjimmiltaan FPGA-abstraktit pysähtyvät # 2 yllä olevassa luettelossa. FPGA antaa kehittäjien työskennellä digitaalisen logiikan tasolla. Se on jonkin verran kehittyneempi kuin siksi, että prosessorit ovat kovakoodattuja tässä kerroksessa ja FPGA: t on konfiguroitava ajon aikana (mikä BTW: n takia suorittimilla on tyypillisesti paljon korkeammat taajuudet), mutta olennainen tärkeä totuus on, että ne ovat kaukana muutama abstraktio FPGA: lle kuin suorittimille.
Joten miksi FPGA voi olla nopeampi kuin suorittimen? Pohjimmiltaan se johtuu FPGA käyttää paljon vähemmän abstrakteja kuin CPU, mikä tarkoittaa, että suunnittelija työskentelee lähempänä piitä. Hän ei maksa kaikkien prosessorien edellyttämien monien abstraktiokerrosten kustannuksia. Hän koodaa alemmalla tasolla ja joutuu työskentelemään kovemmin saavuttaakseen tietyn toiminnallisuuden, mutta palkkion, jonka hän saa korkeammalle suorituskyvylle.
Mutta tietysti on alaspäin myös vähemmän abstraktioita. Kaikki nämä suorittimen abstraktit ovat siellä hyvästä syystä. Ne antavat meille paljon yksinkertaisemman koodausparadigman, mikä tarkoittaa, että useammat ihmiset voivat helposti kehittyä heille. Tämä puolestaan tarkoittaa, että CPU-malleja on olemassa paljon enemmän, joten meillä on valtavia hinta / asteikko / aika-markkinoille-hyötyjä suorittimista.
Joten sinulla on se. FPGA: lla on vähemmän abstraktioita, joten ne voivat olla nopeampia ja energiatehokkaampia, mutta niitä on vaikea ohjelmoida. Suorittimilla on monia abstraktiosuunnitelmia, jotta ne olisi helppo kehittää, skaalautuvia ja halpoja. Mutta he luopuvat kaupan nopeudesta ja voimasta näiden etujen vuoksi.
Kommentit
- Myös FPGA ’ s on suunniteltu käyttämällä yksinkertaisia toistuvia lohkoja, joiden on tarkoitus suorittaa yksinkertaisia loogisia tehtäviä. Ne on räätälöity tietyntyyppisiin tehtäviin.CPU ’ s, OTOH, sisältää monia monimutkaisia toiminnallisia osia, jotka kaikki tekevät erilaisia asioita. Voisi ajatella, että CPU on joukko monia erilaisia FPGA-tyyppisiä laitteita (loppujen lopuksi se ’ on kaikki vain piitä, elektroniikkaa ja matematiikkaa). Joten se ’ ei vain koske abstrakteja, se ’ s monimutkaisuudesta. CPU ’ s ovat monimutkaisia laitteita, jotka koostuvat monista erityyppisistä sähkölaitteista, kun taas FPGA koostuu muutamista. Keskusyksikkö on haulikko, kun taas FPGA on kivääri.
Vastaa
Vaikka kaikki muut vastaukset ovat oikein , yksikään niistä ei vielä käsittele kysymyksesi bitcoin-kaivosesimerkkiä, mikä on todellakin kunnollinen esimerkki. Bitcoin-louhintaan kuuluu toistuvan salauksen hajautusfunktion, SHA-256 toisen SHA-256-laskennan tuloksen, laskeminen, kun vain yksi 32-bittinen kokonaisluku muuttuu, kunnes tuloksena olevalla hashilla on tiettyjä ominaisuuksia. Jokainen SHA-256 koostuu 64 toistosta samasta algoritmista, joka sisältää 32-bittisiä lisäyksiä, bittisiirtoja ja joitain muita bittisekoitustoimintoja.
Jos ohjelmoit tämän silmukan 32-bittiselle (tai useammalle) suorittimelle , löydät sen komentosarjan erittäin hyvin tehtävään — SHA-256 on suunniteltu toimimaan tehokkaasti suorittimilla. Silti käytät vain noin 2% modernin suorittimen pii-alueesta, joka sisältää paljon aluetta käyttäviä toimintoja, kuten välimuisti, kertolasku, jakaminen, liukuluku, haarautuminen ja haarautuminen, jne., Joko ei käytetä lainkaan tai et pysty lisää merkittävästi suorituskykyä tälle tehtävälle.
Määritettävissä laitteistoissa, kuten FPGA, vain yksinkertaisesti toteutetaan nämä 2% ja optimoidaan edelleen unohtamalla kaikki koodin suorittamisesta, pikemminkin suunnittelemalla portit laskemaan kukin suoraan ne usein toistuvat alatoiminnot. Putkilinjattu siten, että kukin heistä siirtää tuloksen seuraavaan jokaiseen kellosylinteriin, ja toistetaan 128 kertaa (ja jossain erityisessä lisälogiikassa, jossa kukin SHA-256 alkaa ja päättyy), päädyt lopputulokseen joka kellosykli (ehkä 100 miljoonalla hashilla sekunnissa FPGA: lla, jonka mainostetaan tukevan 300 MHz yksinkertaisemmalla logiikalla kuin tämä), kun taas modernilla suorittimella voit odottaa yhtä tulosta muutaman tuhannen kellosyklin välein ydintä kohden, eli 10 miljoonaa hashia sekunnissa ond moniytimisessä, monen GHz: n suorittimessa.
Jos tämä esimerkki kiinnostaa sinua, kannattaa ehkä tutustua aiheeseen liittyvään vastaus ASIC-kaivostyöläisten sisäosista bitcoin.stackexchange-palvelussa, koska monet FPGA-kaivostyöläiset työskentelevät samalla tavalla käyttämällä konfiguroitavia kuin räätälöityjä laitteita. Vain täydellisyyden vuoksi: On olemassa muita mahdollisuuksia, kuten kuvailemani putkilinjan rajoittaminen tai välttäminen triviaalisen rinnakkaistamisen hyväksi käyttämällä useita itsenäisiä SHA-256-hashereita. Riippuen FPGA: n sisäisten osien asettamista rajoituksista ja sen kokonaiskoosta , se voi jopa antaa paremman suorituskyvyn, vaikka se olisi vähemmän tehokas porttien määrän ja reittien reitityksen kannalta, jos sinulla olisi täydellinen vapaus suunnitella koko siru, ei vain FPGA: n kokoonpano.
Kommentit
- Se ’ on erittäin hyvä asia piin käytöstä.
- Mutta ehkä (tahattomasti!) harhaanjohtava, kun otetaan huomioon, että FPGA koostuu jonkin verran monimutkaisista soluista, joissa on paljon fyysisiä portteja, joista tyypillinen sovellus käyttää jälleen vain murto-osaa, jolloin niiden valmistajat voivat mainostaa vastaavia porttilukuja yrittäen kertoa sinulle, kuinka paljon kaikki tämä voi olla arvoltaan ” tyypillinen ” sovellus …
Vastaa
Yllä olevat vastaukset ovat oikeita, mutta niistä puuttuu asia miksi FPGA: t (ja mukautetut ASIC: t) ovat erityisen hyviä bitcoin-laskelmissa.
Todellinen etu on, että suuri osa SHA-256-laskelmista on loogisia operaatioita (esimerkiksi bittisiirtoja), jotka voidaan suorittaa johdotus. Tällä tavoin ne edellyttävät 0 kellojaksoa.
Toinen tärkeä etu on, että FPGA: t ovat paljon energiatehokkaampia (ts. MIPS per watti) kuin suorittimet, joten laskelmiin tarvittava energiamäärä on paljon Vähemmän. Tämä on tärkeää, koska bitcoinin louhinnan kustannukset riippuvat siitä, kuinka paljon sähköä käytät sen tekemiseen.
ASIC-sirut ovat energiatehokkaampia kuin FPGA: t, joten ne voivat suorittaa saman koodin paljon halvemmalla. Voit myös täyttää aluksella enemmän suoritusyksiköitä, jotta ne olisivat nopeammat. Haittana on, että mukautetun ASIC: n valmistuskustannukset ovat erittäin korkeat, joten sinun on myytävä melko vähän siruja valmistuskustannusten kattamiseksi.
GPU: ita käytetään myös bitcoinien valmistamiseen, mutta koska ne ovat paljon vähemmän energiatehokkaita, he ovat menettäneet sijaansa FPGA: lle ja mukautetuille ASIC: ille.
Kommentit
- Jos tarkastelet Moneron hajautusalgoritmia eli cryptonightia, huomaat, että FPGA-toteutus on melkein mahdotonta suuren määrän tiedostoja muistia oli käytettävä satunnaisesti (2 Mt). Suorittimella on etu tässä tapauksessa.
- @ lucas92 ei voi integroida RAM-muistia FPGA-laitteeseen tarvittavan muistimäärän sijoittamiseksi?
- Olet todennäköisesti voittanut ’ t: ssä on tarpeeksi loogisia elementtejä FPGA: ssa.