intel - suaicheantasA’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL
Stiùiridhean

A’ cruthachadh Siostaman Cuimhne Heterogeneous ann an Intel® FPGA SDK airson OpenCL Custom Platforms

Tha buileachadh cuimhne ioma-ghnèitheach ann an Àrd-ùrlar Custom a’ ceadachadh leud-bann eadar-aghaidh cuimhne taobh a-muigh (EMIF) a bharrachd air slighean cuimhne nas motha agus nas luaithe. Am measgachadh de ruigsinneachd cuimhne heterogenous le inneal leasaichte
Faodaidh kernel OpenCL ™(1) leantainn gu leasachaidhean coileanaidh cudromach airson an t-siostam OpenCL agad.
Tha an nota tagraidh seo a’ toirt seachad stiùireadh mu bhith a’ cruthachadh siostaman cuimhne ioma-ghnèitheach ann an Àrd-ùrlar Custom airson a chleachdadh leis an Intel® FPGA SDK airson OpenCL(2). Tha Intel a’ gabhail ris gu bheil thu nad dhealbhadair FPGA eòlach a tha a’ leasachadh Custom Platforms anns a bheil siostaman cuimhne ioma-ghnèitheach.
Mus cruthaich thu na siostaman cuimhne ioma-ghnèitheach, cuir eòlas air an Intel FPGA SDK airson sgrìobhainnean OpenCL a tha air an sònrachadh gu h-ìosal.
Fiosrachadh Co-cheangailte

  • Intel FPGA SDK airson Stiùireadh Prògramadh OpenCL
  • Intel FPGA SDK airson OpenCL Stiùireadh Cleachdaidhean as Fheàrr
  • Intel FPGA SDK airson OpenCL Arria 10 GX FPGA Kit Leasachaidh Stiùireadh Porting Àrd-ùrlar

1.1. A’ dearbhadh comas-gnìomh Bòrd FPGA agus Eadar-aghaidhean EMIF

Dearbhaich gach eadar-aghaidh cuimhne gu neo-eisimeileach agus an uairsin cuir air adhart an Àrd-ùrlar Custom agad a’ cleachdadh cuimhne cruinne.

  1. Dearbhaich gach eadar-aghaidh cuimhne a’ cleachdadh dealbhadh bathar-cruaidh as urrainn astar agus seasmhachd gach eadar-aghaidh a dhearbhadh.
  2. Cuir an Àrd-ùrlar Custom agad air adhart a’ cleachdadh cuimhne cruinne.
    1. Airson example, ma tha trì eadar-aghaidh DDR agad, feumaidh aon dhiubh a bhith air a mhapadh mar chuimhne heterogeneous. Anns a 'chùis seo, dearbhaich gnìomhachd a' chruach OpenCL le gach eadar-aghaidh DDR gu neo-eisimeileach.
      Tha OpenCL agus suaicheantas OpenCL nan comharran-malairt aig Apple Inc. air an cleachdadh le cead bhon Khronos Group™ .
    2.  Tha an Intel FPGA SDK airson OpenCL stèidhichte air Sònrachadh Khronos foillsichte, agus tha e air a dhol seachad air Pròiseas Deuchainn Co-chòrdalachd Khronos. Gheibhear an inbhe gèillidh làithreach aig www.khronos.org/conformance.

Intel Corporation. Còraichean uile glèidhte. Tha Intel, suaicheantas Intel, agus comharran Intel eile nan comharran-malairt aig Intel Corporation no na fo-chompanaidhean aige. Tha Intel airidh air coileanadh a thoraidhean FPGA agus semiconductor a rèir mion-chomharrachadh gnàthach a rèir barantas àbhaisteach Intel, ach tha e a’ gleidheadh ​​​​na còrach atharrachaidhean a dhèanamh air toraidhean agus seirbheisean sam bith aig àm sam bith gun rabhadh. Chan eil Intel a’ gabhail uallach no uallach sam bith ag èirigh bho bhith a’ cleachdadh no a’ cleachdadh fiosrachadh, toradh no seirbheis sam bith a tha air a mhìneachadh an seo ach a-mhàin mar a chaidh aontachadh gu soilleir ann an sgrìobhadh le Intel. Thathas a’ moladh do luchd-ceannach Intel an dreach as ùire de shònrachaidhean inneal fhaighinn mus cuir iad earbsa ann am fiosrachadh foillsichte sam bith agus mus cuir iad òrdughan airson toraidhean no seirbheisean. * Faodar ainmean is suaicheantasan eile a thagradh mar sheilbh chàich.
ISO 9001: 2015 clàraichte
Air an làimh eile, ma tha dà eadar-aghaidh DDR agad agus aon eadar-aghaidh ìre dàta quad (QDR), dearbhaich gnìomhachd stac OpenCL den dà eadar-aghaidh DDR agus an eadar-aghaidh QDR gu neo-eisimeileach.
Tha Intel a’ moladh gun cleachd thu PCI Express® - (PCIe® -) no dealbhaidhean sònraichte EMIF gus an eadar-aghaidh cuimhne agad a dhearbhadh. Às deidh dhut dearbhadh gu bheil gach eadar-aghaidh cuimhne obrachail agus gu bheil an dealbhadh OpenCL agad ag obair le fo-sheata de na h-eadar-aghaidh cuimhne, lean air adhart
gus siostam cuimhne ioma-ghnèitheach làn-ghnìomhach a chruthachadh. 
1.2. Ag atharrachadh an board_spec.xml File
Atharraich am bòrd_spec.xml file gus na seòrsaichean de shiostaman cuimhne ioma-ghnèitheach a tha rim faighinn leis na kernels OpenCL a shònrachadh.
Rè cruinneachadh kernel, bidh an Intel FPGA SDK airson OpenCL Offline Compiler a ’sònrachadh argamaidean kernel gu cuimhne stèidhichte air an argamaid àite bufair a shònraich thu.
1. Dèan brobhsadh chun board_spec.xml file ann an eòlaire bathar-cruaidh an Àrd-ùrlar Custom agad.
2. Fosgail an board_spec.xml file ann an deasaiche teacsa agus atharraich an XML a rèir sin.
Airson example, ma tha dà chuimhne DDR aig an t-siostam bathar-cruaidh agad mar chuimhneachan cruinne bunaiteach agus dà bhanca QDR a bhios tu a’ modaladh mar chuimhne ioma-ghnèitheach, atharraich na h-earrannan cuimhne den board_spec.xml file a bhith coltach ris na leanas:
















1.3. A’ stèidheachadh ioma-sgaraidhean cuimhne ann an Qsys
An-dràsta, chan eil Roinn Banca Cuimhne OpenCL ann an dealbhadh Qsys a’ toirt taic do àireamh neo-chumhachd-de-2 de bhancaichean cuimhne, rud nach eil na chuingealachadh airson rèiteachaidhean àbhaisteach. Ach, tha suidheachaidhean ann far a bheil feum air àireamh neo-chumhachd-de-2 de eadar-aghaidh cuimhne. Gus gabhail ri àireamh neo-chumhachd-de-2 de eadar-aghaidh cuimhne, cleachd grunn luchd-sgaraidh Banca Cuimhne OpenCL gus siostaman cuimhne ioma-ghnèitheach a chruthachadh le àireamh neo-chumhachd-de-2 de bhancaichean cuimhne. Feumaidh tu grunn luchd-sgaraidh Banca Cuimhne OpenCL a chruthachadh nuair a tha fìor shiostam cuimhne ioma-ghnèitheach agad. Beachdaich air siostam le aon eadar-aghaidh cuimhne DDR agus aon eadar-aghaidh cuimhne QDR. Leis gu bheil topologies cuimhne eadar-dhealaichte aig an dà bhanca, chan urrainn dhut an cur còmhla fo aon chuimhne chruinneil.
Figear 1. Diagram Bloc de shiostam cuimhne heterogeneous trì-bhanca
Anns an t-siostam cuimhne ioma-ghnèitheach seo tha dà eadar-aghaidh cuimhne DDR agus aon eadar-aghaidh cuimhne QDR.intel A’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL - fig 1Ma tha thu a’ cleachdadh dreach 16.0, 16.0.1, no 16.0.2 de bhathar-bog Intel Quartus® Prime agus an Altera SDK airson OpenCL, bidh an OpenCL Memory Bank Divider a’ làimhseachadh spreadhaidhean cuimhne thar chrìochan seòlaidh gu ceàrr. Gus obrachadh timcheall air a’ chùis aithnichte seo, cuir drochaid loidhne-phìoban le meud burst de 1 agus ceangail a mhaighstir Avalon ®Memory-Mapped (Avalon-MM) ri port tràillean OpenCL Memory Bank Divider.
Thoir an aire:
Tha a’ chùis aithnichte seo stèidhichte ann am bathar-bog Intel Quartus Prime agus an Intel FPGA SDK airson OpenCL dreach 16.1.
Figear 2. Diagram Bloc de shiostam cuimhne heterogeneous trì-bhanca le drochaid loidhne-phìoban intel A’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL - fig 21.4. Ag atharrachadh a’ Phrògraim Boardtest agus an Còd aoigheachd airson an fhuasgladh cuimhne ioma-ghnèitheach agad
Cleachd an kernel boardtest.cl a thig leis an Intel FPGA SDK airson OpenCL Custom Platform Toolkit gus deuchainn a dhèanamh air comasachd agus coileanadh an Àrd-ùrlar Custom agad.
Is e kernel OpenCL a th’ anns a’ phrògram deuchainn bùird a leigeas leat leud-bann aoigheachd-gu-inneal, leud-bann cuimhne, agus gnìomhachd coitcheann an Àrd-ùrlar Custom agad a dhearbhadh.

  1. Dèan brobhsadh chun an /board/ custom_platform_toolkit/tests/boardtest directory.
  2. Fosgail an boardtest.cl file ann an deasaiche teacsa agus sònraich àite bufair airson gach argamaid cuimhne cruinne.
    Airson example:
    __ kernel falamh
    mem_stream (__cruinneil__buadh__((buffer_location(“DDR)))) uint *src, __cruinneil __atribute__((buffer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    An seo, tha uint *src air a shònrachadh do chuimhne DDR, agus tha uint * dst air a shònrachadh do chuimhne QDR. Tha am bòrd_spec.xml file a’ sònrachadh feartan an dà shiostam cuimhne.
  3. Gus am fuasgladh cuimhne ioma-ghnèitheach agad a luathachadh san t-siostam OpenCL agad, atharraich an còd aoigheachd agad le bhith a’ cur a’ bhratach CL_MEM_HETEROGENEOUS_INTELFPGA ris a’ ghairm clCreateBuffer agad.
    Airson example:
    datain = clCreateBuffer(co-theacsa, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, meud (gun ainm) * meud vector, NULL, & inbhe);
    Tha Intel a’ moladh gu làidir gun suidh thu an t-àite bufair mar argamaid kernel mus sgrìobh thu am bufair. Nuair a bhios tu a’ cleachdadh aon chuimhne chruinneil, faodaidh tu na bufairean a sgrìobhadh an dàrna cuid ro no às deidh an sònrachadh gu argamaid kernel. Ann an siostaman cuimhne ioma-ghnèitheach, bidh an aoigh a’ suidheachadh an àite bufair mus sgrìobh e am bufair. Ann am faclan eile, cuiridh an t-òstair fios gu gnìomh clSetKernelArgument mus cuir iad fios gu gnìomh clEnqueueWriteBuffer.
    Anns a’ chòd aoigheachd agad, cuir a-steach na gairmean clCreateBuffer, clSetKernelArg, agus clEnqueueWriteBuffer san òrdugh a leanas:
    datain = clCreateBuffer(co-theacsa, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, meud (gun ainm) * meud vector, NULL, & inbhe);
    ... status = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (falamh*)&ddatain);
    … status = clEnqueueWriteBuffer(ciudha, dàtain, CL_FALSE, 0, sizeof(gun ainm-sgrìobhte) * vectorSize,hdatain, 0, NULL, NULL);
    An ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file a’ taisbeanadh òrdugh coltach ris na gairmean gnìomh sin.
  4.  Às deidh dhut an boardtest.cl atharrachadh file agus an còd aoigheachd, cuir ri chèile an còd aoigheachd agus kernel agus dearbhaich an comas-gnìomh.
    Nuair a bhios tu a’ cur ri chèile a’ chòd kernel agad, feumaidh tu eadar-ghearradh burst de gach siostam cuimhne a dhì-cheadachadh le bhith a’ toirt a-steach an -no-interleaving roghainn anns an àithne aoc.

Fiosrachadh Co-cheangailte
A’ cur casg air burst-eadar-fhrithealadh cuimhne cruinne (– gun eadar-fhighte )

1.5. A’ dearbhadh comas-gnìomh do Chuimhne Heterogeneous Siostam
Gus dèanamh cinnteach gu bheil an siostam cuimhne ioma-ghnèitheach ag obair mar bu chòir, cuir a-mach bratach CL_CONTEXT_COMPILER_MODE_INTELFPGA sa chòd aoigheachd agad.
Ann an siostaman OpenCL le cuimhne aon-ghnèitheach, feumaidh tu roghainn a’ bhratach CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 a shuidheachadh sa chòd aoigheachd agad gus leughadh an .aocx a chur à comas file agus ath-chlàradh an FPGA. Tha e feumail a bhith a’ suidheachadh a’ bhratach CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 nuair a chuireas tu do bhòrd sa bhad gus gnìomhachd an Àrd-ùrlar Custom agad a dhearbhadh gun a bhith a’ dealbhadh an làr agus a’ sònrachadh roinnean LogicLock™.
Le siostaman cuimhne ioma-ghnèitheach, feumaidh an àrainneachd ùine ruith na h-àiteachan bufair airson gach bufair a leughadh, air a mhìneachadh san .aocx file, gus gnìomhachd nan siostaman cuimhne a dhearbhadh. Ach, is dòcha gum bi thu airson dearbhadh dè cho math ‘s a tha an Àrd-ùrlar Custom agad gun a bhith a’ cur an gnìomh feartan deireannach dealbhadh a ’bhùird, leithid dealbhadh an làr agus a’ sònrachadh roinnean LogicLock.

  1. Dèan cinnteach gu bheil a' bhratach CL_CONTEXT_COMPILER_MODE_INTELFPGA neo-shuidhichte sa chòd aoigheachd agad.
  2. Thoir sùil air a’ bhòrd / / source/host/mmd eòlaire den Àrd-ùrlar Custom agad.
  3. Fosgail an acl_pcie_device.cpp inneal le mapa cuimhne (MMD) file ann an deasaiche teacsa.
  4.  Atharraich gnìomh ath-chlàraidh san acl_pcie_device.cpp file le bhith a 'cur toradh 0 air ais; loidhne, mar a chithear gu h-ìosal:
    int ACL_PCIE_DEVICE :: ath-phrògram (falamh * dàta, meud_t data_size)
    {
    tilleadh 0;
    // gabhail ri fàiligeadh
    int reprogram_failed = 1;
    // gabhail ris nach 'eil rbf no hash ann am fpga.bin
    int rbf_or_hash_not_provided = 1;
    // gabhail ris nach eil hashes ath-sgrùdaidh bunaiteach agus in-mhalairt a’ freagairt
    int hash_mismatch = 1;

    }
  5. Ath-chruinnich an acl_pcie_device.cpp file.
  6. Dèan cinnteach gu bheil a' bhratach CL_CONTEXT_COMPILER_MODE_INTELFPGA fhathast neo-shuidhichte.
    An aire: Às deidh dhut tilleadh 0 a chuir ris; gu gnìomh ath-chlàraidh agus ath-chruinnich am MMD file, leughaidh an àrainneachd runtime an .aocx file agus sònraich na h-àiteachan bufair ach cha dèan iad ath-chlàradh air an FPGA. Feumaidh tu ìomhaigh FPGA a mhaidseadh le làimh leis an .aocx file. Gus an giùlan seo a thionndadh air ais, thoir air falbh tilleadh 0; bhon ghnìomh ath-phrògram agus ath-chruinnich am MMD file.

1.6. Eachdraidh Ath-sgrùdadh Sgrìobhainnean

Ceann-latha Tionndadh Atharrachaidhean
Dùbhlachd-17 2017.12.01 • Ath-bhranndadh CL_MEM_HETEROGENEOUS_ALTERA gu CL_MEM_HETEROGENEOUS_INTELFPGA.
Dùbhlachd-16 2016.12.13 • Ath-bhranndadh CL_CONTEXT_COMPILER_MODE_ALTERA gu CL_CONTEXT_COMPILER_MODE_INTELFPGA.

intel - suaicheantasA’ cruthachadh Siostaman Cuimhne Heterogeneous ann an Intel® FPGA SDK airson OpenCL
Àrd-ùrlaran Custom
intel A’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL - ìomhaigh 1 Cuir fios air ais
intel A’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL - ìomhaigh Tionndadh air-loidhne
intel A’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL - ìomhaigh 1 Cuir fios air ais
Àireamh a' Chlàir: 683654
Tionndadh: 2016.12.13

Sgrìobhainnean/Goireasan

intel A’ cruthachadh Siostaman Cuimhne Heterogeneous ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL [pdfStiùiridhean
A ’cruthachadh shiostaman cuimhne ioma-ghnèitheach ann am FPGA SDK airson Àrd-ùrlaran Custom OpenCL, a’ cruthachadh Siostaman Cuimhne Heterogeneous, FPGA SDK airson Àrd-ùrlaran Custom OpenCL

Iomraidhean

Fàg beachd

Cha tèid do sheòladh puist-d fhoillseachadh. Tha raointean riatanach air an comharrachadh *