Креирање хетерогених меморијских система у ФПГА СДК за ОпенЦЛ прилагођене платформе
Упутства
Креирање хетерогених меморијских система у Интел® ФПГА СДК за ОпенЦЛ прилагођене платформе
Имплементација хетерогене меморије у прилагођеној платформи омогућава већи пропусни опсег спољног меморијског интерфејса (ЕМИФ), као и већи и бржи приступ меморији. Комбинација хетерогеног приступа меморији са оптимизованим
ОпенЦЛ™(1)кернел може довести до значајних побољшања перформанси вашег ОпенЦЛ система.
Ова напомена о апликацији пружа упутства за креирање хетерогених меморијских система на прилагођеној платформи за употребу са Интел® ФПГА СДК за ОпенЦЛ(2). Интел претпоставља да сте искусан ФПГА дизајнер који развија прилагођене платформе које садрже хетерогене меморијске системе.
Пре креирања хетерогених меморијских система, упознајте се са Интел ФПГА СДК за ОпенЦЛ документе наведене у наставку.
Повезане информације
- Интел ФПГА СДК за ОпенЦЛ Водич за програмирање
- Интел ФПГА СДК за ОпенЦЛ Водич за најбоље праксе
- Интел ФПГА СДК за ОпенЦЛ Арриа 10 ГКС ФПГА развојни комплет Референтна платформа Водич за портирање
1.1. Провера функционалности ФПГА плоче и ЕМИФ интерфејса
Проверите сваки меморијски интерфејс независно, а затим инстанцирајте своју прилагођену платформу користећи глобалну меморију.
- Проверите сваки меморијски интерфејс користећи хардверски дизајн који може да тестира брзину и стабилност сваког интерфејса.
- Инстанцирајте своју прилагођену платформу користећи глобалну меморију.
- Фор екampда, ако имате три ДДР интерфејса, један од њих мора бити мапиран као хетерогена меморија. У овом случају, проверите функционалност ОпенЦЛ стека са сваким ДДР интерфејсом независно.
ОпенЦЛ и ОпенЦЛ лого су заштитни знакови компаније Аппле Инц. који се користе уз дозволу Кхронос Гроуп™. - Интел ФПГА СДК за ОпенЦЛ је заснован на објављеној Кхронос спецификацији и прошао је Кхронос процес тестирања усаглашености. Тренутни статус усаглашености можете пронаћи на ввв.кхронос.орг/цонформанце.
- Фор екampда, ако имате три ДДР интерфејса, један од њих мора бити мапиран као хетерогена меморија. У овом случају, проверите функционалност ОпенЦЛ стека са сваким ДДР интерфејсом независно.
Интел Цорпоратион. Сва права задржана. Интел, Интел лого и друге Интел ознаке су заштитни знаци Интел Цорпоратион или њених подружница. Интел гарантује перформансе својих ФПГА и полупроводничких производа у складу са тренутним спецификацијама у складу са Интеловом стандардном гаранцијом, али задржава право да изврши измене било којег производа и услуге у било које време без обавештења. Интел не преузима никакву одговорност или одговорност која произилази из примене или коришћења било које информације, производа или услуге описане овде осим ако је Интел изричито пристао у писаној форми. Интеловим клијентима се саветује да набаве најновију верзију спецификација уређаја пре него што се ослоне на било коју објављену информацију и пре него што наруче производе или услуге. *Друга имена и брендови могу се сматрати власништвом других.
ИСО 9001:2015 Регистрован
Алтернативно, ако имате два ДДР интерфејса и један интерфејс са четири брзине преноса података (КДР), проверите независно функционалност ОпенЦЛ стека два ДДР интерфејса и КДР интерфејса.
Интел препоручује да користите ПЦИ Екпресс® – (ПЦИе® -) или ексклузивне дизајне ЕМИФ за тестирање меморијских интерфејса. Након што потврдите да је сваки меморијски интерфејс функционалан и да ваш ОпенЦЛ дизајн ради са подскупом меморијских интерфејса, наставите
да се створи потпуно функционалан хетерогени меморијски систем.
1.2. Измена боард_спец.кмл File
Измените боард_спец.кмл file да наведете типове хетерогених меморијских система који су доступни ОпенЦЛ језгрима.
Током компилације кернела, Интел ФПГА СДК за ОпенЦЛ Оффлине Цомпилер додељује аргументе језгра меморији на основу аргумента локације бафера који наведете.
1. Дођите до боард_спец.кмл file у директоријуму хардвера ваше прилагођене платформе.
2. Отворите боард_спец.кмл file у уређивачу текста и у складу са тим измените КСМЛ.
Фор екampда, ако ваш хардверски систем има две ДДР меморије као подразумевану глобалну меморију и две КДР банке које моделујете као хетерогену меморију, измените меморијске одељке боард_спец.кмл file да личи на следеће:
1.3. Подешавање вишеструких разделника меморије у Ксис-у
Тренутно, ОпенЦЛ Мемори Банк Дивидер у Ксис дизајну не подржава број меморијских банака без снаге 2, што није ограничење за типичне конфигурације. Међутим, постоје сценарији у којима је неопходан број меморијских интерфејса без снаге 2. Да бисте прилагодили број меморијских интерфејса без снаге 2, користите вишеструке ОпенЦЛ разделнике меморијске банке да бисте креирали хетерогене меморијске системе са бројем меморијских банака без снаге 2. Морате креирати више ОпенЦЛ разделника меморијске банке када имате истински хетерогени меморијски систем. Размислите о систему са једним ДДР меморијским интерфејсом и једним КДР меморијским интерфејсом. Пошто две банке имају различите меморијске топологије, не можете их комбиновати под једном глобалном меморијом.
Слика 1. Блок дијаграм хетерогеног меморијског система са три банке
Овај хетерогени меморијски систем садржи два ДДР меморијска интерфејса и један КДР меморијски интерфејс.Ако користите верзију 16.0, 16.0.1 или 16.0.2 софтвера Интел Куартус® Приме и Алтера СДК за ОпенЦЛ, ОпенЦЛ Мемори Банк Дивидеер погрешно управља меморијским рафалима преко граница адреса. Да бисте заобишли овај познати проблем, додајте мост цевовода са величином рафала од 1 и повежите његов Авалон ®Мемори-Маппед (Авалон-ММ) мастер са славе портом ОпенЦЛ Мемори Банк Дивидера.
Напомена:
Овај познати проблем је поправљен у софтверу Интел Куартус Приме и Интел ФПГА СДК за ОпенЦЛ верзију 16.1.
Слика 2. Блок дијаграм хетерогеног меморијског система са три банке са цевоводним мостом 1.4. Измена програма Боардтест и кода домаћина за ваше хетерогено меморијско решење
Користите кернел боардтест.цл који долази са Интел ФПГА СДК за ОпенЦЛ Цустом Платформ Тоолкит да бисте тестирали функционалност и перформансе ваше прилагођене платформе.
Програм боардтест је ОпенЦЛ кернел који вам омогућава да тестирате пропусни опсег од хост-а до уређаја, пропусни опсег меморије и општу функционалност ваше прилагођене платформе.
- Дођите до /боард/ цустом_платформ_тоолкит/тестс/боардтест директоријум.
- Отворите боардтест.цл file у уређивачу текста и сваком аргументу глобалне меморије доделити локацију бафера.
Фор екampле:
__кернел воид
мем_стреам (__глобал__аттрибуте__((буффер_лоцатион(“ДДР”))) уинт *срц, __глобал __аттрибуте__((буффер_лоцатион(“КДР”))) уинт *дст, уинт арг, уинт арг2)
Овде је уинт *срц додељен ДДР меморији, а уинт *дст је додељен КДР меморији. Тхе боард_спец.кмл file специфицира карактеристике оба меморијска система. - Да бисте искористили своје хетерогено меморијско решење у вашем ОпенЦЛ систему, модификујте свој хост код додавањем ознаке ЦЛ_МЕМ_ХЕТЕРОГЕНЕОУС_ИНТЕЛФПГА вашем позиву цлЦреатеБуффер.
Фор екampле:
ддатаин = цлЦреатеБуффер(контекст, ЦЛ_МЕМ_РЕАД_ВРИТЕ | мемфлагс
ЦЛ_МЕМ_ХЕТЕРОГЕНЕОУС_ИНТЕЛФПГА, сизеоф(унсигнед) * вецторСизе, НУЛЛ, &статус);
Интел снажно препоручује да поставите локацију бафера као аргумент кернела пре писања бафера. Када користите једну глобалну меморију, можете да упишете бафере пре или после њиховог додељивања аргументу кернела. У хетерогеним меморијским системима, домаћин поставља локацију бафера пре уписивања бафера. Другим речима, домаћин ће позвати функцију цлСетКернелАргумент пре него што позове функцију цлЕнкуеуеВритеБуффер.
У свом коду домаћина, позовите позиве цлЦреатеБуффер, цлСетКернелАрг и цлЕнкуеуеВритеБуффер следећим редоследом:
ддатаин = цлЦреатеБуффер(контекст, ЦЛ_МЕМ_РЕАД_ВРИТЕ | мемфлагс |
ЦЛ_МЕМ_ХЕТЕРОГЕНЕОУС_ИНТЕЛФПГА, сизеоф(унсигнед) * вецторСизе, НУЛЛ, &статус);
… статус = цлСетКернелАрг(кернел[к], 0, сизеоф(цл_мем), (воид*)&ддатаин);
… статус = цлЕнкуеуеВритеБуффер(куеуе, ддатаин, ЦЛ_ФАЛСЕ, 0, сизеоф(унсигнед) * вецторСизе,хдатаин, 0, НУЛЛ, НУЛЛ);
Тхе АЛТЕРАОЦЛСДКРООТ/боард/цустом_платформ_тоолкит/тестс/боардтест/хост/мемспеед.цпп file представља сличан редослед ових позива функција. - Након што измените боардтест.цл file и код хоста, компајлирајте код хоста и кернела и проверите њихову функционалност.
Приликом компајлирања кода кернела, морате онемогућити бурст-интерлеавинг свих меморијских система укључивањем –но-интерлеавинг опција у команди аоц.
Повезане информације
Онемогућавање бурст-преплитања глобалне меморије (-без преплитања )
1.5. Провера функционалности вашег хетерогеног памћења Систем
Да бисте осигурали да хетерогени меморијски систем исправно функционише, поништите ознаку ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_ИНТЕЛФПГА у вашем коду домаћина.
У ОпенЦЛ системима са хомогеном меморијом, морате да изаберете опцију да подесите ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_ИНТЕЛФПГА=3 заставицу у вашем коду хоста да бисте онемогућили читање .аоцк file и репрограмирање ФПГА. Постављање заставице ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_ИНТЕЛФПГА=3 је корисно када инстанцирате вашу плочу да бисте проверили функционалност ваше прилагођене платформе без дизајнирања тлоцрта и навођења ЛогицЛоцк™ региона.
Са хетерогеним меморијским системима, окружење за извршавање мора да прочита локације бафера сваког бафера, описане у .аоцк file, да проверите функционалност меморијских система. Међутим, можда бисте желели да проверите функционалност ваше прилагођене платформе без имплементације коначних карактеристика дизајна плоче, као што је пројектовање тлоцрта и навођење ЛогицЛоцк региона.
- Проверите да ли је ознака ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_ИНТЕЛФПГА поништена у вашем коду хоста.
- Дођите до табле/ /соурце/хост/ммд директоријум ваше прилагођене платформе.
- Отворите ацл_пцие_девице.цпп меморијски мапирани уређај (ММД) file у уређивачу текста.
- Измените функцију репрограмирања у ацл_пцие_девице.цпп file додавањем повратне вредности 0; линија, као што је приказано испод:
инт АЦЛ_ПЦИЕ_ДЕВИЦЕ::репрограм (воид *дата, сизе_т дата_сизе)
{
ретурн 0;
// претпоставити неуспех
инт репрограм_фаилед = 1;
// претпостављамо да нема рбф-а или хеша у фпга.бин
инт рбф_ор_хасх_нот_провидед = 1;
// претпоставимо да се хешови основне и увозне ревизије не подударају
инт хасх_мисматцх = 1;
…
} - Поново компајлирајте ацл_пцие_девице.цпп file.
- Уверите се да заставица ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_ИНТЕЛФПГА остаје неподељена.
пажња: Након што додате вратите 0; на функцију репрограмирања и поново компајлирајте ММД file, окружење за извршавање ће прочитати .аоцк file и доделити локације бафера, али неће репрограмирати ФПГА. Морате ручно ускладити ФПГА слику са .аоцк file. Да бисте преокренули ово понашање, уклоните ретурн 0; из функције репрограмирања и поново компајлирајте ММД file.
1.6. Историја ревизија документа
Датум | Версион | Промене |
Дец-17 | 2017.12.01 | • Ребрендиран ЦЛ_МЕМ_ХЕТЕРОГЕНЕОУС_АЛТЕРА у ЦЛ_МЕМ_ХЕТЕРОГЕНЕОУС_ИНТЕЛФПГА. |
Дец-16 | 2016.12.13 | • Промењен бренд ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_АЛТЕРА у ЦЛ_ЦОНТЕКСТ_ЦОМПИЛЕР_МОДЕ_ИНТЕЛФПГА. |
Креирање хетерогених меморијских система у Интел® ФПГА СДК за ОпенЦЛ
Прилагођене платформе
Пошаљите повратне информације
Интернет верзија
Пошаљите повратне информације
ИД: 683654
Верзија: 2016.12.13
Документи / Ресурси
![]() |
интел Креирање хетерогених меморијских система у ФПГА СДК за ОпенЦЛ прилагођене платформе [пдфУпутства Креирање хетерогених меморијских система у ФПГА СДК за ОпенЦЛ прилагођене платформе, Креирање хетерогених меморијских система, ФПГА СДК за ОпенЦЛ прилагођене платформе |