OpenCL బోర్డు కోసం AN 824 FPGA SDK
మద్దతు ప్యాకేజీ ఫ్లోర్ప్లాన్
వినియోగదారు గైడ్
కోసం Intel® FPGA SDK OpenCL ™ బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్ ఆప్టిమైజేషన్ గైడ్
OpenCL™ బోర్డ్ సపోర్ట్ ప్యాకేజీ (BSP) కోసం Intel/® FPGA SDK ఫ్లోర్ప్లాన్ ఆప్టిమైజేషన్ గైడ్ OpenCL) BSP కోసం ఫ్లోర్ప్లానింగ్ మార్గదర్శకాలను అందిస్తుంది. ఇది మీరు ఉత్తమ సగటు గరిష్ట ఆపరేటింగ్ ఫ్రీక్వెన్సీతో బేస్ సీడ్ను ఎలా పొందవచ్చో మరియు BSP వనరుల వినియోగ సామర్థ్యాన్ని ఎలా అంచనా వేయవచ్చనే దానిపై మార్గదర్శకత్వాన్ని అందిస్తుంది.
Khronos గ్రూప్ ద్వారా OpenCL స్పెసిఫికేషన్ వెర్షన్ 2లో వివరించిన విధంగా OpenCL(1.0) కాన్సెప్ట్లు మీకు బాగా తెలుసునని ఈ పత్రం ఊహిస్తుంది.
OpenCL BSP కంపైలేషన్ ఫ్లో
OpenCL BSP క్రింది రకాల కంపైల్ ఫ్లోలకు మద్దతు ఇస్తుంది:
- ఫ్లాట్ కంపైల్ [–bsp-flow flat]: మొత్తం డిజైన్ యొక్క ఫ్లాట్ కంపైలేషన్ను నిర్వహిస్తుంది (BSPతో పాటు కెర్నల్ రూపొందించిన హార్డ్వేర్).
- బేస్ కంపైల్ [–bsp-flow బేస్]: base.qsf నుండి లాజిక్లాక్ పరిమితులను ఉపయోగించడం ద్వారా బేస్ కంపైలేషన్ను నిర్వహిస్తుంది file. కెర్నల్ క్లాక్ లక్ష్యం సడలించబడింది, తద్వారా BSP హార్డ్వేర్కు సమయానికి అనుగుణంగా ఎక్కువ స్వేచ్ఛ ఉంటుంది. BSP హార్డ్వేర్ను సంరక్షించడానికి బేస్.qar డేటాబేస్ సృష్టించబడింది, ఇది స్థిరమైన ప్రాంతం.
- కంపైల్ దిగుమతి చేయండి [ ]: base.qar డేటాబేస్ నుండి టైమింగ్ క్లోజ్డ్ స్టాటిక్ రీజియన్ని రీస్టోర్ చేస్తుంది మరియు కెర్నల్ రూపొందించిన హార్డ్వేర్ను మాత్రమే కంపైల్ చేస్తుంది. ఇది ఉత్తమ కెర్నల్ గరిష్ట ఆపరేటింగ్ ఫ్రీక్వెన్సీ (fmax) పొందేందుకు కెర్నల్ క్లాక్ లక్ష్యాన్ని కూడా పెంచుతుంది.
OpenCL BSP ఫ్లోర్ప్లాన్ విభజన
OpenCL BSP ఫ్లోర్ప్లాన్ ప్రధానంగా క్రింది రెండు ప్రాంతాలుగా విభజించబడింది:
- స్టాటిక్ ప్రాంతం: స్థిరంగా ఉండే BSP సంబంధిత హార్డ్వేర్ ఉన్న ప్రాంతాన్ని సూచిస్తుంది. బేస్ కంపైలేషన్ సమయంలో ఈ ప్రాంతానికి సమయం మూసివేయబడింది. సాధారణంగా, సమయం మూసివేయడానికి ఈ ప్రాంతం ఉపయోగించే చిప్ వనరులను తగ్గించడమే లక్ష్యం.
- కెర్నల్ ప్రాంతం: freeze_wrapper_inst|kernel_system_inst మాడ్యూల్ కోసం రిజర్వ్ చేయబడిన పాక్షిక రీకాన్ఫిగరేషన్ (PR) ప్రాంతాన్ని సూచిస్తుంది, ఇందులో కెర్నల్ ఉంటుంది. సాధారణంగా, ఈ ప్రాంతం కోసం చిప్ వనరులను గరిష్టంగా రిజర్వ్ చేయడం లక్ష్యం.
- OpenCL కోసం Intel FPGA SDK ప్రచురించబడిన క్రోనోస్ స్పెసిఫికేషన్ ఆధారంగా రూపొందించబడింది మరియు క్రోనోస్ కన్ఫార్మెన్స్ టెస్టింగ్ ప్రాసెస్లో ఉత్తీర్ణత సాధించింది. ప్రస్తుత అనుగుణ్యత స్థితిని ఇక్కడ కనుగొనవచ్చు www.khronos.org/conformance.
- OpenCL మరియు OpenCL లోగో Apple Inc. యొక్క ట్రేడ్మార్క్లు మరియు Khronos Group™ అనుమతితో ఉపయోగించబడుతుంది.
ఇంటెల్ కార్పొరేషన్. అన్ని హక్కులు ప్రత్యేకించబడ్డాయి. ఇంటెల్, ఇంటెల్ లోగో మరియు ఇతర ఇంటెల్ గుర్తులు ఇంటెల్ కార్పొరేషన్ లేదా దాని అనుబంధ సంస్థల ట్రేడ్మార్క్లు. Intel దాని FPGA మరియు సెమీకండక్టర్ ఉత్పత్తుల పనితీరును ఇంటెల్ యొక్క ప్రామాణిక వారంటీకి అనుగుణంగా ప్రస్తుత స్పెసిఫికేషన్లకు హామీ ఇస్తుంది, అయితే నోటీసు లేకుండా ఏ సమయంలోనైనా ఏదైనా ఉత్పత్తులు మరియు సేవలకు మార్పులు చేసే హక్కును కలిగి ఉంది. ఇంటెల్ వ్రాతపూర్వకంగా అంగీకరించినట్లు మినహా ఇక్కడ వివరించిన ఏదైనా సమాచారం, ఉత్పత్తి లేదా సేవ యొక్క అప్లికేషన్ లేదా ఉపయోగం నుండి ఉత్పన్నమయ్యే బాధ్యత లేదా బాధ్యతను Intel తీసుకోదు. ఇంటెల్ కస్టమర్లు ఏదైనా ప్రచురించబడిన సమాచారంపై ఆధారపడే ముందు మరియు ఉత్పత్తులు లేదా సేవల కోసం ఆర్డర్లు చేసే ముందు పరికర నిర్దేశాల యొక్క తాజా వెర్షన్ను పొందాలని సూచించారు.
*ఇతర పేర్లు మరియు బ్రాండ్లను ఇతరుల ఆస్తిగా క్లెయిమ్ చేయవచ్చు.
OpenCL BSP ఫ్లోర్ప్లానింగ్ కోసం మార్గదర్శకాలు
- BSP యొక్క అన్ని ప్రధాన భాగాలు సహజంగా ఎక్కడ ఉంచబడతాయో అర్థం చేసుకోవడానికి ఫ్లాట్ కంపైలేషన్తో ప్రారంభించండి (ముఖ్యంగా PCIe లేదా DDR వంటి I/O కనెక్షన్లతో IP బ్లాక్లు). BSP రూపకల్పన చేస్తున్నప్పుడు, మీరు పైప్లైన్లను స్థాపించడాన్ని పరిగణించాలిtagటైమింగ్ను మూసివేయడానికి IPల మధ్య ఉంటుంది. పునరావృత విఫలమయ్యే మార్గాలను గుర్తించడానికి మీరు మొదట ఫ్లాట్ కంపైల్ సీడ్ స్వీప్ను అమలు చేయాలి, ఆపై వాటిని పరిష్కరించడానికి ప్రయత్నించాలి.
చిట్కా: — ఫ్లాట్ కంపైల్ సీడ్ స్వీప్ల కంటే మంచి టైమింగ్ క్లోజర్ రేట్ బేస్ కంపైల్ టైమింగ్ను మూసివేసే అవకాశాలు ఎక్కువగా ఉంటాయి.
— మీరు mm_interconnect*లో స్థిరమైన వైఫల్యాలను గమనిస్తే (Qsys ద్వారా జోడించబడిన భాగం), ఆపై Qsys ఇంటర్కనెక్ట్తో సిస్టమ్ను తెరవండి viewer మరియు విఫలమైన ఇంటర్కనెక్ట్ యొక్క సంక్లిష్టతను గమనించండి. మీరు పైప్లైనింగ్ ఫ్లిప్ఫ్లాప్లను జోడించవచ్చు viewసమయాన్ని మెరుగుపరచడానికి. మీరు ఇప్పటికీ సమస్యను పరిష్కరించలేకపోతే, మీరు Avalon పైప్లైన్ వంతెనలను జోడించడం ద్వారా mm_interconnect* క్లిష్టమైన మార్గాన్ని విచ్ఛిన్నం చేయాల్సి ఉంటుంది. - బేస్ కంపైలేషన్ సమయంలో, freeze_wrapper_inst|kernel_system_instని కలిగి ఉన్న కెర్నల్ ప్రాంతంలో లాజిక్లాక్తో ప్రారంభించండి. ఇతర పరిమితులు లేకుండా, ఇంటెల్ క్వార్టస్ ప్రైమ్ BSP హార్డ్వేర్ను చిప్లోని మిగిలిన స్టాటిక్ ప్రాంతంలో ఉచితంగా ఉంచవచ్చు. PCIe మరియు DDR వంటి BSP హార్డ్వేర్ పరిమాణం మరియు స్థానాన్ని గుర్తించడానికి ఫ్లాట్ కంపైల్ మరియు చిప్ ప్లానర్ను ఉపయోగించండి. అప్పుడు, BSP హార్డ్వేర్ యొక్క ప్రధాన క్లస్టర్డ్ ఏరియాలను తప్పించుకుంటూ లాజిక్లాక్ని ఉపయోగించడం ద్వారా కెర్నల్ ప్రాంతాన్ని రిజర్వ్ చేయండి.
చిట్కా: ఉపయోగించిన చిప్ కుటుంబం రిఫరెన్స్ ప్లాట్ఫారమ్తో సమానంగా ఉంటే మరియు BSP భాగాలు సారూప్యంగా ఉన్నట్లయితే, OpenCL సూచన BSPతో రవాణా చేయబడిన freeze_wrapper_inst|kernel_system_inst కోసం LogicLock ప్రాంతాలతో ప్రారంభించడం మరియు వైఫల్యాల ద్వారా పని చేయడం వేగవంతం కావచ్చు. - మీరు మీ BSPకి క్రింది అదనపు భాగాలను జోడించవచ్చు:
— మెమరీ బ్యాంక్లు: మీరు మరిన్ని మెమరీ బ్యాంక్లను జోడిస్తే, మీరు I/O బ్యాంక్ లొకేషన్ను గుర్తించాలి, ఎందుకంటే మీరు సమయానికి అనుగుణంగా పైప్లైన్ వంతెనలను జోడించాల్సి ఉంటుంది.
— I/O ఛానెల్లు: మీరు వీడియో, ఈథర్నెట్ లేదా సీరియల్ ఇంటర్ఫేస్ వంటి I/O ఛానెల్లను జోడించవచ్చు. మీరు I/O ఛానెల్లను జోడిస్తే, మీరు I/O బ్యాంక్ లొకేషన్ను గుర్తించాలి, ఎందుకంటే మూసివేసే సమయం కష్టంగా ఉంటే పైప్లైనింగ్ కోసం మీరు కొత్త లాజిక్లాక్ ప్రాంతాలను వర్తింపజేయవలసి ఉంటుంది.
చిట్కా: మీరు పైప్లైన్ వంతెనలను జోడించాల్సిన అవసరం ఉంటే (ఉదాample, పెద్ద రౌటింగ్ ఆలస్యం కారణంగా టైమింగ్ వైఫల్యాలకు కారణమవుతుంది), ఆపై చిప్లో మూలం నుండి గమ్యం లాజిక్కు రూటింగ్ దూరాన్ని పరిగణించండి మరియు కెర్నల్ ప్రాంతం కోసం కేటాయించిన కొంత స్థలాన్ని విడుదల చేయండి. - కెర్నల్ కోసం లాజిక్లాక్ ప్రాంతాలను రిజర్వ్ చేస్తున్నప్పుడు ఈ సాధారణ మార్గదర్శకాలను అనుసరించండి:
— BSP ద్వారా అవసరమైతే మినహా అన్ని DSP నిలువు వరుసలను kernel_systemలో ఉంచడానికి ప్రయత్నించండి.
— kernel_system కోసం మరిన్ని వనరులను రిజర్వ్ చేసే ప్రయత్నం.
— కెర్నల్ ప్రాంతంలో నోచ్ల సంఖ్యను కనిష్టంగా ఉంచడానికి ప్రయత్నం.
PCIe మరియు DDR బ్యాంక్ మధ్య పైప్లైన్ వంతెనను ఉంచడానికి జోడించబడిన ఒక గీతను క్రింది బొమ్మ వివరిస్తుంది.
మూర్తి 1. 10 విడుదలలో Intel Arria® 17.0 GX కోసం OpenCL BSP ఫ్లోర్ప్లాన్
గరిష్ట ఆపరేటింగ్ ఫ్రీక్వెన్సీ కోసం మార్గదర్శకాలు
కెర్నల్ల ద్వారా సాధించే గరిష్ట ఆపరేటింగ్ ఫ్రీక్వెన్సీ (fmax) ఎక్కువగా FPGA వేగంపై ఆధారపడి ఉంటుంది, ఎందుకంటే చాలా IPలు ఇప్పటికే ఆప్టిమైజ్ చేయబడాలి. అయితే, BSP ఫ్లోర్ప్లాన్పై ఆధారపడి కొన్ని fmax నష్టాలు ఉండవచ్చు. ఉదాహరణకుample, సాధారణంగా BSP కెర్నల్ ప్రాంతంలో కట్-అవుట్ల సంఖ్య కెర్నల్ fmaxని ప్రభావితం చేస్తుంది.
కింది చిత్రంలో ఉదహరించబడినట్లుగా, ఉత్తమ సగటు ఎఫ్మాక్స్ను అందించే ఉత్తమ మూల విత్తనాన్ని పొందడం కోసం:
- సమయానికి అనుగుణంగా ఉండే మొదటి మూల విత్తనాన్ని ఎంచుకోవడానికి బదులుగా బేస్ కంపైలేషన్పై సీడ్ స్వీప్ చేయండి.
- దిగుమతి సంకలనాన్ని జరుపుము (మాజీ నుండి కొన్ని కెర్నల్లను ఉపయోగించడం ద్వారాample డిజైన్లు) అన్ని పాసింగ్ బేస్ విత్తనాలపై.
- అన్ని మూల విత్తనాలకు సగటు ఎఫ్మాక్స్ను గణించండి.
- అత్యధిక సగటు fmax దిగుబడినిచ్చే మూల విత్తనాన్ని ఎంచుకోండి.
ఉత్తమ సగటు fmaxతో బేస్ సీడ్ BSPతో విడుదల చేయడానికి మంచి అభ్యర్థి. మీరు సిఫార్సు చేసిన దశల కంటే భిన్నమైన విధానాన్ని అనుసరించాలని నిర్ణయించుకుంటే, మీరు కెర్నల్ దిగుమతి సంకలన ప్రక్రియ యొక్క fmaxలో 5-10% వైవిధ్యాన్ని గమనించవచ్చు.
మూర్తి 2. ఉత్తమ మూల విత్తనాన్ని గుర్తించడం
- ఫ్లోర్ప్లాన్ పరిమితులు లేకుండా కెర్నల్ ఎంత వేగంగా నడుస్తుందో అర్థం చేసుకోవడానికి:
1. కెర్నల్ యొక్క ఫ్లాట్ కంపైలేషన్ చేయండి మరియు fmaxని గమనించండి.
2. అదే కెర్నల్పై దిగుమతి సంకలనాన్ని అమలు చేయండి మరియు fmaxని గమనించండి.
3. fmax ఫలితాలను సరిపోల్చండి.
ఫ్లోర్ప్లాన్ పరిమితుల కారణంగా, దిగుమతి కంపైల్ fmax ఎల్లప్పుడూ flat కంపైల్ fmax కంటే తక్కువగా ఉంటుంది. విత్తన శబ్దాన్ని నివారించడానికి, కెర్నల్ను మరిన్ని మూల విత్తనాలతో కంపైల్ చేయండి మరియు fmax ఫలితాలను పోల్చేటప్పుడు సగటు fmaxని పరిగణించండి. - బేస్ కంపైలేషన్ నుండి కెర్నల్ ఎఫ్మాక్స్ను ఫ్లాట్ లేదా ఇంపోర్ట్ కంపైలేషన్తో ఎప్పుడూ పోల్చవద్దు. బేస్ కంపైలేషన్ సమయంలో కెర్నల్ క్లాక్ లక్ష్యాలు సడలించబడతాయి మరియు అందువల్ల, మీరు ఎప్పటికీ మంచి ఫలితాలను పొందలేరు.
- బేస్ లేదా ఇంపోర్ట్ కంపైలేషన్లో కెర్నల్ క్లాక్ క్రిటికల్ పాత్ను గమనించండి. ఫ్లోర్ప్లాన్లోని కెర్నల్ నుండి స్టాటిక్ రీజియన్కు క్లిష్టమైన మార్గం దాటుతున్నట్లయితే, ఈ క్లిష్టమైన మార్గాన్ని నివారించడానికి ఫ్లోర్ప్లాన్ను మార్చండి లేదా మరికొన్ని బేస్ సీడ్లను అమలు చేయండి.
BSP వనరుల వినియోగ సామర్థ్యాన్ని మూల్యాంకనం చేయడానికి మార్గదర్శకాలు
వనరుల వినియోగ శాతం ఎక్కువtagఇ, మీ BSP యొక్క స్టాటిక్ ఏరియాలో ఏరియా వినియోగం అంత మెరుగ్గా ఉంటుంది. అధిక వనరుల వినియోగ శాతంtage కెర్నల్ ప్రాంతం కోసం మరిన్ని వనరులు అందుబాటులో ఉన్నాయని కూడా సూచిస్తుంది.
వనరుల వినియోగ శాతం లెక్కించేందుకు దిగువ దశలను అనుసరించండిtagమీ BSP యొక్క ఇ:
- ఫిట్టర్ నివేదికలోని విభజన గణాంకాల విభాగంలో అందుబాటులో ఉన్న top.fit.rpt లేదా base.fit.rpt నుండి FPGAలోని అన్ని వనరుల కోసం విలువలను పొందండి.
- “freeze_wrapper_inst|kernel_system_inst” (కెర్నల్ ప్రాంతం) కోసం విలువను తీసివేయండి.
చిట్కా:
ఇతర వనరుల విలువల కంటే అడాప్టివ్ లాజిక్ మాడ్యూల్ (ALM) విలువలపై ఎక్కువ దృష్టి పెట్టండి. వనరుల వినియోగ శాతం ఉండేలా చూసుకోండిtage కోసం ALM అనేది OpenCL సూచన BSPకి దగ్గరగా ఉంటుంది. చాలా ఎక్కువ శాతంtage కోసం ALM రద్దీకి దారితీయవచ్చు, ఇది సంకలన సమయాన్ని పెంచుతుంది మరియు సంక్లిష్ట కెర్నల్స్లో రూటింగ్ రద్దీని పరిచయం చేస్తుంది. అయినప్పటికీ, మీరు ఎల్లప్పుడూ స్థిర ప్రాంత ప్రాంతాన్ని పెంచవచ్చు లేదా తగ్గించవచ్చు మరియు సంకలన సమయం మరియు fmaxని గమనించవచ్చు.
కింది పట్టిక 10 విడుదలలో Arria ® 17.0 GX పరికరాల OpenCL BSP వనరుల వినియోగాన్ని ప్రతిబింబిస్తుంది.
పట్టిక 1.
10 విడుదలలో IntelArria 17.0 GX పరికరాల OpenCL BSP వనరుల వినియోగం
మొత్తం అందుబాటులో ఉంది | కెర్నల్ కోసం రిజర్వ్ చేయబడింది | BSPకి అందుబాటులో ఉంది | BSP ద్వారా ఉపయోగించబడుతుంది | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818 | 71.% |
నమోదు చేస్తుంది | 1708800 | 1575200 | 133600 | 38913 | 29.% |
M2OK | 2713 | 2534 | 179 | 134 | 75.% |
DSP | 1518 | 1518 | 0 | 0 | N/A |
స్టాటిక్ ప్రాంతంలో ఎటువంటి DSP బ్లాక్లు ఉండని విధంగా ఫ్లోర్ప్లానింగ్ అమలు చేయబడిందని గమనించండి.
పత్ర పునర్విమర్శ చరిత్ర
పట్టిక 2.
OpenCL బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్ ఆప్టిమైజేషన్ గైడ్ కోసం Intel FPGA SDK యొక్క డాక్యుమెంట్ రివిజన్ చరిత్ర
తేదీ | వెర్షన్ | మార్పులు |
ఆగస్టు-17 | ప్రారంభ విడుదల. |
ఆన్లైన్ వెర్షన్
అభిప్రాయాన్ని పంపండి
ID: 683312
AN-824
వెర్షన్: 2017.08.08
AN 824: OpenCL™ బోర్డ్ కోసం Intel® FPGA SDK
మద్దతు ప్యాకేజీ ఫ్లోర్ప్లాన్ ఆప్టిమైజేషన్ గైడ్
పత్రాలు / వనరులు
![]() |
ఓపెన్సిఎల్ బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్ కోసం ఇంటెల్ AN 824 FPGA SDK [pdf] యూజర్ గైడ్ ఓపెన్సిఎల్ బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్ కోసం AN 824 FPGA SDK, AN 824, OpenCL బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్ కోసం FPGA SDK, OpenCL బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్, బోర్డ్ సపోర్ట్ ప్యాకేజీ ఫ్లోర్ప్లాన్, సపోర్ట్ ప్యాకేజీ,ప్లానేజ్ ప్యాక్లోర్ప్లాన్, |