最近两天做了一下Parsec程序在嵌入式ARM开发板的实现,使用的xilinx的zynq平台。

简介

Parsec(the princetion application repository for shared-memory computers)是一个多线程应用程序组成的测试程序集。该程序代表了未来运行在片上多核系统中的共享内存应用程序的开发趋势。一共包含如下程序:

blackscholes - Option pricing with Black-Scholes Partial Differential Equation (PDE)

bodytrack - Body tracking of a person

canneal - Simulated cache-aware annealing to optimize routing cost of a chip design

dedup - Next-generation compression with data deduplication

facesim - Simulates the motions of a human face

ferret - Content similarity search server

fluidanimate - Fluid dynamics for animation purposes with Smoothed Particle Hydrodynamics (SPH) method

freqmine - Frequent itemset mining

raytrace - Real-time raytracing

streamcluster - Online clustering of an input stream

swaptions - Pricing of a portfolio of swaptions

vips - Image processing (Project Website)

x264 - H.264 video encoding (Project Website)

Parsec测试基准程序在主机上跑

因为主机的虚拟机中直接装有GCC编译器,因此直接将Parsec的压缩包解压,按照指令编译运行即可:

其中如果需要使用多线程,可以按照下面这个博主的讲解:

(17条消息) Parsec+Gem5环境搭建与使用指南_王s聪的博客-CSDN博客

另外对于swaption这样的程序来说,编译build的时候可能需要用-c gcc-tbb才可以。

Parsec测试基准程序在开发板上跑

这个测试基准对于嵌入式来说非常不友好,因为在主机编译下载到开发板运行的方式极其不方便。不过我还是找了一个相对简单的程序,swaption,进行了尝试。首先就是在主机上利用xilinx SDK

编译成elf文件,编译的时候主要改了以下地方:

 输出结果:

编译成功以后,下载到开发板,结果报错:

这是因为程序里有动态库,编译的时候只编译静态库,动态库是运行可执行文件的时候才调用的,而我的开发板里是不可能有这些动态库的了,所以只能一个个找了。这里提醒一句:嵌入式因为其体积小内存小,基本上面的操作系统都是定制的,即便是我自己安装的linux,那也是xilinx提供的适用于其ARM核处理器的xilinx-linux,里面连apt,sudo这些东西都没装。

因此我就去找库了,其实好找,因为我是用SDK编译的,而SDK中使用的是arm-linux-gnueabihf-g++命令,我在虚拟机中找到了arm-linux-gnueabihf文件夹,拷贝了我缺少的所有库到开发板的/usr/lib中,就可以啦。其中:

可以看到,有个ld-linux.so.3的库找不到,其实我发现它只是个连接,最终的库是ld-2.23.so。但是把 ld-2.23.so安装进来以后,还是报ld-linux.so.3的库找不到,所以只能建一个名为ld-linux.so.3软链接到 ld-2.23.so,这样就可以了!

最后展示一下结果:

Parsec测试基准程序在zynq板上测试相关推荐

  1. 57、yolov5+rk3399pro/yolov7+rk3588 支持batchsize=3仿真测试和实体开发板上测试

    基本思想:python转换脚本安装,和其它环境配置参考之前,主要想搞一版本batchsize=3的c++ demo;参考官方链接百度企业网盘-企业云盘-企业云存储解决方案-同步云盘 上面小板子是rk3 ...

  2. 在android开发板上测试neon加速实验

    今天为了测试在mtk6757上面的neon加速性能,从网上找来一个测试例子保留了它的汇编文件和cpp文件,做了一些简单的修改,然后自己写了一个Android.mk和Application.mk 采用n ...

  3. 地平线 旭日X3 SDB开发板 (三) 工具链仿真/板上测试

    文章目录 一.检查模型 二.校准 三.build runtime模型 四.Demo运行测试 4.1 开发机仿真运行(不需要的直接跳到4.2) 4.2 板上运行 五.参考 目前tensorflow,py ...

  4. 盘点16种常见的PCB可靠性测试,您的板经得起测试吗?

    一个可靠性的PCB板,需要经过多轮测试.下面我们一起来看看16种常见的PCB可靠性测试,有兴趣的客户可以测试下自己的板子是否过关. 1. 阻焊膜硬度测试 测试目的: 检测阻焊膜硬度 测试原理/设备: ...

  5. 飞凌嵌入式研发干货 | LS1028A开发板网络应用测试

    本文硬件平台以飞凌嵌入式OK1028A-C开发板为基础进行讲解,其它LS1028产品,由于各个厂家设置不同会有所差异,请参考使用.本文档主要介绍 NXP LS1028A开发板网络中的应用测试.包括 D ...

  6. 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用

    摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用 发布者:旺旺雪饼   时间:2013-01-05 16:56:09 环境: Ubuntu10.04 arm linux OS: 3. ...

  7. RASPBERRY PI PICO 开发板 基础测试

    ▌01 PI PICO 颜色名 十六进制颜色值 颜色 Coral #FF7F50 rgb(255, 127, 80) 1.安装与上载程序 在 RASPBERRY PI PICO 树莓派PICO开发板双 ...

  8. kdir测试软件,[OK210开发板体验]入门篇(4)编程入门(NFS登录、驱动入门)

    前面分别介绍了 [OK210开发板体验]的第一篇:开箱验板 [OK210开发板验]的第二篇:板载资源 [OK210开发板体验]的第三篇:开发环境(软件安装,开发环境,烧写系统) 今天是[OK210开发 ...

  9. 搭建S3C6410开发板的测试环境

    1.开发板是开发和学习嵌入式技术的主要设备.OK6410开发板基于三星公司最新的ARM11处理器S3C6410,对三星S3C6410的性能做出了完美诠释,拥有强大的内部资源和视频处理能力,可稳定运行在 ...

最新文章

  1. mysql 特殊字符
  2. JSP的学习二(请求转发与 重定向)
  3. 机器学习实战(一)—— K-近邻算法(KNN)
  4. 数据库事务的四大特性以及事务的隔离级别详解
  5. COMPUTER HARDWARE OPENCART 主题模板 ABC-0059
  6. Java 多线程(一) 基础知识与概念
  7. macOS下安装ipython
  8. 深入了解帆软报表系统的启动过程二
  9. break and continue;
  10. Lucene中的一些基本概念
  11. 【maven】maven基础知识总结
  12. LCD12864显示屏原理及使用教程
  13. struts2之拦截器详解
  14. GPU VS FPGA对比
  15. AI绘图第二弹!绘制专属动漫头像
  16. “没有存在感”是一种什么感受?
  17. 【Python爬虫历程】使用Cookie来模拟登陆
  18. “华为杯”第十八届中国研究生数学建模竞赛B题参赛总结
  19. 医用腕带应用整体解决方案:老人智能用药场景,老人防走丢报警-新导智能
  20. X99主板2011-3接口E5 CPU一览表

热门文章

  1. GetKeyState函数详解
  2. 超光滑!竟如此光滑——白光干涉仪超光滑镜片应用
  3. C语言——for循环
  4. 开篇词 | 算法是程序的“灵魂”
  5. kafka consumer消费者 offset groupID详解
  6. MyCat(三)分库分表
  7. SLUB和SLAB的区别
  8. 高斯白噪声及Matlab常用实现方法
  9. 习题8-7 字符串排序 (20分)
  10. layui js 自定义打印功能实现