You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 xclbin of kv260 is missing section CONNECTIVITY & GROUP_CONNECTIVITY.
The Address Size in Memory Configuration of the xclbin for kv260 is all 0x0.
The Memory in Instance of the xclbin for kv260 is all not 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"
#defineCU_NAME"krnl_vadd"intmain(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;
}
return0;
};
Thanks,
JH
The text was updated successfully, but these errors were encountered:
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.
The info of xrt & zocl from xbutil seems to be the same between zcu104 & kv260.
By comparing the difference between
xclbin
I find out :xclbin
of kv260 is missing sectionCONNECTIVITY
&GROUP_CONNECTIVITY
.Address Size
inMemory Configuration
of thexclbin
for kv260 is all0x0
.Memory
inInstance
of thexclbin
for 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.Thanks,
JH
The text was updated successfully, but these errors were encountered: