CnD

Software kuvakaappaus:
CnD
Ohjelmiston tiedot:
Versio: 2012.1
Lähetyksen päivämäärä: 14 Apr 15
Kehittäjä: Andreas Kloeckner
Lupa: Vapaa
Suosio: 11

Rating: nan/5 (Total Votes: 0)

CND on Python lähde-to-source kääntäjä, joka tekee käyttämällä n-ulotteinen taulukot C miellyttävämpi. & Nbsp; Se kääntää tämä koodi:
void sgemm (float *, float * b, float * c, int n)
{
& Nbsp; ulottuvuus "Fortran" [n, n];
& Nbsp; ulottuvuus "Fortran" b [n, n];
& Nbsp; mitta c [N, N];
& Nbsp; for (int i = 1; i <= n; ++ i)
& Nbsp; (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; (int k = 1; k <= n; ++ k)
& Nbsp; tmp + = [i, k] * b [k, j];
& Nbsp; c [i-1, j-1] = tmp;
& Nbsp;}
}
tähän:
void sgemm (float *, float * b, float * c, int n)
{
& Nbsp; for (int i = 1; i <= n; ++ i)
& Nbsp; (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; (int k = 1; k <= n; ++ k)
& Nbsp; TMP + = [((k - 1) * ((n - 1) + 1)) + (i - 1)] * b [((j - 1) * ((n - 1) + 1) ) + (k - 1)];
& Nbsp; c [((i - 1) * n) + (j - 1)] = tmp;
& Nbsp;}
}
Voit myös vilkaista kattavamman esimerkki, joka osoittaa muutama ylimääräinen kelloja ja pillejä.
Ainoa vaikutus ulottuvuus ilmoitus on muuttaa tulkintaa array (IDX) alaindeksi operaattori. ulottuvuus ilmoitukset totella säännöllisesti C rajausvaiheessa sääntöjä.
Haluaisin myös todeta, että CND on vankka, parseri perustuva kääntäjä, ei hilseilevä tekstin korvaaminen työkalu. Se ymmärtää kaikki C99, sekä monia GNU laajennuksia.
Jokaisella akselilla erittelyä ulottuvuus ilmoituksen muoto on seuraavanlainen:
alkaa: end: voittajana: leading_dimension
käynnistys voidaan jättää pois. pää ja voittajana voidaan myös jättää pois, mutta jos merkinnät jälkeen niitä tarkennetaan, niiden perään kaksoispiste on pysyttävä paikoillaan. Esimerkiksi akseli erittely: 5 täsmennetään ainoastaan ​​voittajana on 5. voittajana yksinkertaisesti toimii kertoimen indeksi. Ei uskottavuutta tarkkailun mitään tehdään ulottuvuus ilmoituksen. Voit ampua itsesi jalka asuun.
Jos asettelu annetaan "c" tai ei anneta ollenkaan, seuraavat asiat ovat totta:
- Array on vahvistetut rivillä-merkittävän tilauksen.
- Pää indeksi on pidetty yksinomainen, jos määritetty.
- Alku indeksi oletuksena 0.
Jos asettelu annetaan "Fortran", seuraavat asiat ovat totta:
- Array on vahvistetut sarakkeessa-merkittävän tilauksen.
- Pää indeksi on pidetty inclusive, jos määritetty.
- Alku indeksi oletuksena 1.
(Suurin osa) tiedon sisältämien ulottuvuus ilmoitus voidaan reobtained ohjelmallisesti mukaan follwing toiminnot:
- Rankof ()
- Nitemsof ()
- Lboundof (akseli)
- Uboundof (akseli) (palauttaa käyttäjän määrittelemä yläraja)
- Puboundof (akseli) (palauttaa indeksin vain ohi akselin päässä)
- Ldimof (akseli)
- Strideof (akseli)
Kussakin tapauksessa, akselin tulee olla vakio kokonaisluku (ei ole vakio ilmaus, tavallinen kokonaisluku).
Asennus / Käyttö
Saatat saada CND lataamalla tarrapallon pakkauksesta indeksi, tai github:
& Nbsp; git klooni git: //github.com/inducer/cnd.git
& Nbsp; cd CND
 git submodule init
& Nbsp; git submodule päivitys
Voit käyttää CND, lisää jakelu-dir / bin PATH.
Aloita yksinkertaisesti ajaa (sisällä CND root):
& Nbsp; cd esimerkkejä
& Nbsp; ../ bin / cndcc gcc -std = c99 basic.c
& Nbsp; ./ a.out
Jos haluat lisää hienorakeinen valvoa käännös prosessi, CND komento paljastaa vain lähde-to-source käännös. Huomaa, että CND odottaa esikäsiteltyjä lähde. Voit siirtää vaihtoehto -E on CND ajaa esikäsittelijän lähteesi sinulle. Run:
& Nbsp; CND -h
saadaksesi täyden apua komentoriviltä. Voit asettaa CND_CPP muuttujan esiprosessori haluat käyttää.

Mitä uutta tässä julkaisussa:

  • Syntax muutos [i, j] on [i, j] .
  • Vielä parseri tukea tosielämän otsikot.

Vaatimukset :

  • Python

Muu ohjelmistojen kehittäjä Andreas Kloeckner

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

Kommentit CnD

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!