• ARM嵌入式系统编程与优化
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

ARM嵌入式系统编程与优化

50.71 8.6折 59 九品

仅1件

北京海淀
认证卖家担保交易快速发货售后保障

作者梁元宇 译

出版社机械工业出版社

出版时间2017-09

版次1

装帧平装

货号A8

上书时间2024-10-30

新起点书店

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 梁元宇 译
  • 出版社 机械工业出版社
  • 出版时间 2017-09
  • 版次 1
  • ISBN 9787111578031
  • 定价 59.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 204页
  • 丛书 计算机科学丛书
【内容简介】

  本书结合ARM架构和Linux工具,关注以性能为导向的嵌入式编程,深入讲解如何通过对数据、算法和存储等层面的优化,终实现性能的显著提升。本书先讲解ARM架构和嵌入式系统的基础知识,然后结合图像变换、分形生成和计算机视觉等应用案例,详细说明不同的优化方法。读者可在RaspberryPi等平台上动手运行并比较不同算法,掌握实践技巧。本书适合作为本科或研究生嵌入式系统课程的教材,也适合从事相关开发工作的程序员参考。

【作者简介】

  Jason D. Bakos,美国南卡罗来纳大学计算机科学与工程系副教授,研究方向包括高性能计算、异构网络和嵌入式计算机系统等。拥有2项专利,发表了30余篇学术论文。2009年曾获得美国国家科学基金(NSF)事业奖,现为ACM会刊《可重构技术与系统》的副主编。

【目录】

目录

 

EmbeddedSystems:ARMProgrammingandOptimization

 

出版者的话

 

译者序

 

前言

 

致谢

 

第1章Linux/ARM嵌入式平台1

 

1.1以性能为导向的编程2

 

1.2ARM技术3

 

1.3ARM简史4

 

1.4ARM编程4

 

1.5ARM体系集架构5

 

1.5.1ARM通用寄存器5

 

1.5.2状态寄存器6

 

1.5.3内存寻址模式7

 

1.5.4GNUARM汇编8

 

1.6汇编优化1:排序8

 

1.6.1参考实现8

 

1.6.2汇编实现9

 

1.6.3结果验证11

 

1.6.4分析编译器生成的代码13

 

1.7汇编优化2:位操作15

 

1.8代码优化目标16

 

1.8.1减少执行指令数16

 

1.8.2降低平均CPI16

 

1.9使用性能计数器的运行时分析18

 

1.9.1ARM性能监控单元18

 

1.9.2LinuxPerf_Event18

 

1.9.3性能计数器的基础架构19

 

1.10检测存储器带宽22

 

1.11性能测试结果25

 

1.12性能界限25

 

1.13基本指令集26

 

1.13.1整型算术指令26

 

1.13.2按位逻辑指令26

 

1.13.3移位指令27

 

1.13.4移动指令27

 

1.13.5加载和存储指令28

 

1.13.6比较指令28

 

1.13.7分支指令29

 

1.13.8浮点指令29

 

1.14小结30

 

习题31

 

第2章多核和数据层优化:OpenMP和SIMD33

 

2.1本书所涉及的优化技术33

 

2.2阿姆达尔定律34

 

2.3测试内核:多项式评估35

 

2.4使用多核:OpenMP37

 

2.4.1OpenMP指令37

 

2.4.2范围39

 

2.4.3其他OpenMP指令42

 

2.4.4OpenMP同步42

 

2.4.5调试OpenMP代码44

 

2.4.6OpenMP并行循环编译指令46

 

2.4.7OpenMP与性能计数器48

 

2.4.8OpenMP支持霍纳内核48

 

2.5性能界限48

 

2.6性能分析49

 

2.7GCC中的内联汇编语言50

 

2.8优化1:降低每f?lop的指令数51

 

2.9优化2:降低CPI54

 

2.9.1软件流水线54

 

2.9.2软件流水线的霍纳方法57

 

2.10优化3:使用SIMD时的每指令多f?lop63

 

2.10.1ARM11的VFP短向量指令65

 

2.10.2ARMCortex的NEON指令67

 

2.10.3NEON内联函数69

 

2.11小结70

 

习题71

 

第3章算法优化和Linux帧缓冲72

 

3.1Linux帧缓冲72

 

3.2仿射图像变换74

 

3.3双线性插值74

 

3.4浮点图像变换75

 

3.4.1加载图像76

 

3.4.2渲染帧78

 

3.5浮点性能分析82

 

3.6定点运算82

 

3.6.1定点与浮点:准确度83

 

3.6.2定点与浮点:范围83

 

3.6.3定点与浮点:精度83

 

3.6.4使用定点84

 

3.6.5高效定点加法84

 

3.6.6高效定点乘法87

 

3.6.7确定小数点的位置89

 

3.6.8图像变换的范围和准确度要求90

 

3.6.9将浮点值转换为定点值的运算90

 

3.7定点性能92

 

3.8实时分形生成92

 

3.8.1像素着色94

 

3.8.2放大94

 

3.8.3范围和准确度要求95

 

3.9小结96

 

习题96

 

第4章存储优化和视频处理99

 

4.1模板循环99

 

4.2模板案例:均值滤波器100

 

4.3可分离滤波器100

 

4.3.1高斯模糊101

 

4.3.2Sobel滤波器103

 

4.3.3Harris角点检测器104

 

4.3.4Lucas-Kanade光流106

 

4.4二维滤波器的存储访问行为108

 

4.4.1二维数据展示108

 

4.4.2按行滤波108

 

4.4.3按列滤波109

 

4.5循环分块110

 

4.6分块和模板晕区112

 

4.7二维滤波实现案例112

 

4.8视频帧的捕获和转换116

 

4.8.1YUV和色度抽样116

 

4.8.2将分块导出到帧缓冲区118

 

4.9Video4Linux驱动和API119

 

4.10使用二维分块滤波器122

 

4.11应用可分离的二维分块滤波器123

 

4.12顶层循环124

 

4.13性能结果124

 

4.14小结124

 

习题125

 

第5章利用OpenCL进行嵌入式异构编程127

 

5.1GPU微体系结构128

 

5.2OpenCL128

 

5.3OpenCL编程模型、语法及摘要129

 

5.3.1主机/设备编程模型129

 

5.3.2错误检查130

 

5.3.3平台层:初始化平台131

 

5.3.4平台层:初始化设备133

 

5.3.5平台层:初始化上下文135

 

5.3.6平台层:内核控制136

 

5.3.7平台层:内核编译137

 

5.3.8平台层:设备存储分配140

 

5.4内核工作负荷分配141

 

5.4.1设备存储区142

 

5.4.2内核参数143

 

5.4.3内核向量化145

 

5.4.4霍纳内核的参数空间146

 

5.4.5内核属性147

 

5.4.6内核调度147

 

5.5霍纳方法的OpenCL实现:设备码152

 

5.6性能结果156

 

5.6.1参数探索156

 

5.6.2工作组数156

 

5.6.3工作组大小157

 

5.6.4向量大小157

 

5.7小结158

 

习题158

 

附录A为RaspberryPi1的Raspbian系统添加PMU支持160

 

附录BNEON内联函数指令163

 

附录COpenCL参考175

 


点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP