Vadd example on kv260 : Missing CONNECTIVITY section in xclbin
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- embedded-iot
Direzione di ricerca
Reproduce the failure with the vadd command and the provided simpleCL code on KV260, then compare the xclbin CONNECTIVITY, GROUP_CONNECTIVITY, memory configuration, and instance information against ZCU104. Start with the xclbin differences and xbutil output; done means identifying why the KV260 metadata is incomplete and documenting or correcting the cause so the example runs.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi all,
I am currently trying to add some HLS IP on kv260 with 2022.1 tool chain.
I have tried the basic vadd example, it could run properly on zcu104.
But with the same work flow on kv260 is not working with the same example code.
# ./vadd /lib/firmware/xilinx/app-vadd/app-vadd.xclbin
INFO: Reading ./app-vadd/app-vadd.xclbin
Loading: './app-vadd/app-vadd.xclbin'
Trying to program device[0]: edge
Device[0]: program successful!
Segmentation fault
The info of xrt & zocl from xbutil seems to be the same between zcu104 & kv260.
# xbutil examine
System Configuration
OS Name : Linux
Release : 5.15.19-xilinx-v2022.1
Version : #1 SMP Mon Apr 11 17:52:14 UTC 2022
Machine : aarch64
CPU Cores : 4
Memory : 3929 MB
Distribution : PetaLinux 2022.1_release_S04190222 (honister)
GLIBC : 2.34
Model : ZynqMP SM-K26 Rev1/B/A
XRT
Version : 2.13.0
Branch : 2022.1
Hash : 2a6dc026480914ea1c9f02977a6ab4b57e8a3c8d
Hash Date : 2022-04-12 14:31:55
ZOCL : 2.13.0, 2a6dc026480914ea1c9f02977a6ab4b57e8a3c8d
Devices present
BDF : Shell Platform UUID Device ID Device Ready*
[0000:00:00.0] : edge 0x0 user(inst=0) Yes
* Devices that are not ready will have reduced functionality when using XRT tools
By comparing the difference between xclbin I find out :
- The
xclbinof kv260 is missing sectionCONNECTIVITY&GROUP_CONNECTIVITY.
- The
Address SizeinMemory Configurationof thexclbinfor kv260 is all0x0.
- The
MemoryinInstanceof thexclbinfor kv260 is allnot applicable.
Is the failure of vadd example code caused by these reason?
Or there is something I have missed?
By the way I have also verify the function with a simple xrt code which works on zcu104 but out_of_range on kv260.
# ./simpleCL.exe /lib/firmware/xilinx/app-vadd/app-vadd.xclbin 1
init
create rand value
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
Aborted
#include <string>
#include "xrt/xrt_device.h"
#include "xrt/xrt_kernel.h"
#include "xrt/xrt_bo.h"
#include "xrt/xrt.h"
#define CU_NAME "krnl_vadd"
int main(int argc, char* argv[])
{
if (argc < 3)
return -1;
std::cout << "init" << std::endl;
std::string xclbin = argv[1];
if (xclbin.empty())
return -2;
auto device = xrt::device(0);
auto uuid = device.load_xclbin(xclbin);
auto kernel = xrt::kernel(device, uuid, CU_NAME);
int DATASIZE = atoi(argv[2]);
int a[DATASIZE], b[DATASIZE], s[DATASIZE], o[DATASIZE];
size_t size_in_byte = sizeof(int) * DATASIZE;
std::cout << "create rand value" << std::endl;
for (int i=0; i<DATASIZE; i++){
a[i] = rand();
b[i] = rand();
s[i] = a[i] + b[i];
}
auto bo_a = xrt::bo(device, size_in_byte, kernel.group_id(0));
auto bo_b = xrt::bo(device, size_in_byte, kernel.group_id(1));
auto bo_o = xrt::bo(device, size_in_byte, kernel.group_id(2));
std::cout << "write data to buffer" << std::endl;
bo_a.write(a);
bo_b.write(b);
std::cout << "run" << std::endl;
auto run = kernel(bo_a, bo_b, bo_o, DATASIZE);
std::cout << "wait" << std::endl;
int status = run.wait(10000);
std::cout << "runner status : " << status << std::endl;
std::cout << "read data to buffer" << std::endl;
bo_o.read(o);
for (int i=0; i<DATASIZE; i++){
if(o[i] != s[i])
std::cout << "value diff " << o[i] << " != " << s[i] << std::endl;
}
return 0;
};
Thanks,
JH
- Lingua principale
- Makefile
- Stelle
- 609
- Fork
- 233
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Xilinx/Vitis_Accel_Examples
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Example file is missing.Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 35/100
-
hw_emu hangsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di Xilinx/Vitis_Accel_Examples
Issue simili
-
[BUG] Small issues on iMXRT found by ClaudeForse già presa @Sarthak-Pandey l’ha presa oggi. ApertaArch: arm Area: Networking OS: Linux Type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
device support request
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
zigpy/zha-device-handlers#5461 ·
I maintainer di solito rispondono entro 4 giorni
-
external converter
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
Koenkk/zigbee2mqtt#33396 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
home-assistant/core#186681 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
al-one/hass-xiaomi-miot#2998 ·
I maintainer di solito rispondono entro 3 giorni