Vadd example on kv260 : Missing CONNECTIVITY section in xclbin
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp
- Lĩnh vực
- embedded-iot
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Makefile
- Star
- 610
- Fork
- 233
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Xilinx/Vitis_Accel_Examples
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Example file is missing.Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 35/100
-
hw_emu hangsĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Tất cả issue của Xilinx/Vitis_Accel_Examples
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
prestonbrown/helixscreen#1865 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
rubyjs/mini_racer#449 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
project-chip/connectedhomeip#74924 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
bigtreetech/BIGTREETECH-TouchScreenFirmware#3056 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
followup
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày