IEEE Robotics & Automation Magazine - December 2016 - 169
× 10-4
TPE on CPU
TPE on GPU
Time per Edge (ms)
7
6
5
4
3
2
1
0
2
4
6
8
10 12
Number of Edges
14
16
Figure 4. The TPE evolution of the errors computing block (FB2).
on the GPU continues to decrease till the last step. At the last
step, on both FB2 and FB3, the GPU-based TPE is approximately five times smaller than the CPU-based TPE. Note here
that the TPEs of FB7 and FB8 blocks have approximately the
same behavior evolution.
Schur Complement
Basically, as a matrix-matrix multiplication, the Schur
complement is quadratic time. The proposed algorithm to
compute the Schur complement is linear time. It essentially depends on the number of edges resulting from the
graph reduction. Nevertheless, the robot poses neighborhood affects the processing time as well. The smaller the
neighborhood, the faster is the execution. Indeed, the
neighborhood determines the number of the serial loop
iterations, which may slow down the execution (lines 13
through 17 in Algorithm 4).
Figure 6 presents the TPE evolution of the Schur complement. If we do not take into account data transfer time from
the GPU to the CPU, the CPU gives the best TPE at the
beginning. As the number of edges increases and because of
the limited number of threads on the CPU, the TPE on the
GPU starts to slightly overcome the TPE on the CPU. This
gain also depends on how large the robot poses neighborhood is. The smaller the neighborhood, the higher is the gain
over the CPU. Each robot pose, at the end of the trajectory, is
linked to at most three landmarks. This explains the relative
gain at the end. Note also that executing FB4 on the GPU may
be slowed down by the high number of global memory
accesses to fetch and store data. Nevertheless, the graph
reduction generates many more edges than the initial graph
has. Transferring these edges (nonzero blocks of H pp ), to be
used by FB5 on the CPU, is a limiting factor of executing FB4
on the GPU. Indeed, the time transfer quickly becomes prohibitive with respect to the functional block overall run time.
In this experiment, at the last step we have to transfer 51,574
nonzero blocks (3.54 Mb). Figure 6 shows that taking into
account data transfer time increases the TPE more when
computing FB4 on the GPU.
TPE on CPU
TPE on GPU
3
2.5
2
1.5
1
0.5
18
× 103
0
2
4
6
8
10 12
Number of Edges
14
16
18
× 103
Figure 5. The TPE evolution of the construction block (FB3).
1.6
× 10-3
TPE on CPU
TPE on GPU
TPE on GPU + Transfer Time
TPE on CPU/GPU + Transfer Time
1.4
Time per Edge (ms)
0
× 10-3
3.5
Time per Edge (ms)
8
1.2
1
0.8
0.6
0.4
0.2
0
0
10
20
30
40
Number of Edges
50
60
× 103
Figure 6. The TPE evolution of the Schur complement block (FB4).
Discussion and Algorithm-Architecture Mapping
Based on the evaluations and the analysis described earlier,
the GPU gives more performances compared to the CPU for
the blocks FB2, FB3, FB7, and FB8. Nevertheless, the CPU is
more suitable to implement the Schur complement (FB4) due
to data transfer time. It should be noted that the average processing time of FB1, in these experiments, is about 0.8 ms on
the GPU and 0.2 ms on the CPU. However, FB1 should be
implemented on the GPU as FB3 to avoid data transfer from
the GPU to the CPU.
Now that the CPU is more able to compute FB4, we still
have to transfer the matrix H to the CPU. This device-to-host
transfer is not so prohibitive as the first one, because we only
transfer nonzero blocks. Furthermore, to enhance the TPE
more and minimize transferring data back to the GPU, we
split FB4 into three subblocks. The first one computes the H ll
inverse on the GPU, the second one computes the new information vector Bp on the GPU as well. The last one computes
the new information matrix H pp on the CPU after receiving
the information matrix H . Using this cooperative model
CPU-GPU, we obtain the best TPE as shown in Figure 6.
Indeed, even if we consider data transfer time, the CPU-GPU
DECEMBER 2016
*
IEEE ROBOTICS & AUTOMATION MAGAZINE
*
169
Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - December 2016
IEEE Robotics & Automation Magazine - December 2016 - Cover1
IEEE Robotics & Automation Magazine - December 2016 - Cover2
IEEE Robotics & Automation Magazine - December 2016 - 1
IEEE Robotics & Automation Magazine - December 2016 - 2
IEEE Robotics & Automation Magazine - December 2016 - 3
IEEE Robotics & Automation Magazine - December 2016 - 4
IEEE Robotics & Automation Magazine - December 2016 - 5
IEEE Robotics & Automation Magazine - December 2016 - 6
IEEE Robotics & Automation Magazine - December 2016 - 7
IEEE Robotics & Automation Magazine - December 2016 - 8
IEEE Robotics & Automation Magazine - December 2016 - 9
IEEE Robotics & Automation Magazine - December 2016 - 10
IEEE Robotics & Automation Magazine - December 2016 - 11
IEEE Robotics & Automation Magazine - December 2016 - 12
IEEE Robotics & Automation Magazine - December 2016 - 13
IEEE Robotics & Automation Magazine - December 2016 - 14
IEEE Robotics & Automation Magazine - December 2016 - 15
IEEE Robotics & Automation Magazine - December 2016 - 16
IEEE Robotics & Automation Magazine - December 2016 - 17
IEEE Robotics & Automation Magazine - December 2016 - 18
IEEE Robotics & Automation Magazine - December 2016 - 19
IEEE Robotics & Automation Magazine - December 2016 - 20
IEEE Robotics & Automation Magazine - December 2016 - 21
IEEE Robotics & Automation Magazine - December 2016 - 22
IEEE Robotics & Automation Magazine - December 2016 - 23
IEEE Robotics & Automation Magazine - December 2016 - 24
IEEE Robotics & Automation Magazine - December 2016 - 25
IEEE Robotics & Automation Magazine - December 2016 - 26
IEEE Robotics & Automation Magazine - December 2016 - 27
IEEE Robotics & Automation Magazine - December 2016 - 28
IEEE Robotics & Automation Magazine - December 2016 - 29
IEEE Robotics & Automation Magazine - December 2016 - 30
IEEE Robotics & Automation Magazine - December 2016 - 31
IEEE Robotics & Automation Magazine - December 2016 - 32
IEEE Robotics & Automation Magazine - December 2016 - 33
IEEE Robotics & Automation Magazine - December 2016 - 34
IEEE Robotics & Automation Magazine - December 2016 - 35
IEEE Robotics & Automation Magazine - December 2016 - 36
IEEE Robotics & Automation Magazine - December 2016 - 37
IEEE Robotics & Automation Magazine - December 2016 - 38
IEEE Robotics & Automation Magazine - December 2016 - 39
IEEE Robotics & Automation Magazine - December 2016 - 40
IEEE Robotics & Automation Magazine - December 2016 - 41
IEEE Robotics & Automation Magazine - December 2016 - 42
IEEE Robotics & Automation Magazine - December 2016 - 43
IEEE Robotics & Automation Magazine - December 2016 - 44
IEEE Robotics & Automation Magazine - December 2016 - 45
IEEE Robotics & Automation Magazine - December 2016 - 46
IEEE Robotics & Automation Magazine - December 2016 - 47
IEEE Robotics & Automation Magazine - December 2016 - 48
IEEE Robotics & Automation Magazine - December 2016 - 49
IEEE Robotics & Automation Magazine - December 2016 - 50
IEEE Robotics & Automation Magazine - December 2016 - 51
IEEE Robotics & Automation Magazine - December 2016 - 52
IEEE Robotics & Automation Magazine - December 2016 - 53
IEEE Robotics & Automation Magazine - December 2016 - 54
IEEE Robotics & Automation Magazine - December 2016 - 55
IEEE Robotics & Automation Magazine - December 2016 - 56
IEEE Robotics & Automation Magazine - December 2016 - 57
IEEE Robotics & Automation Magazine - December 2016 - 58
IEEE Robotics & Automation Magazine - December 2016 - 59
IEEE Robotics & Automation Magazine - December 2016 - 60
IEEE Robotics & Automation Magazine - December 2016 - 61
IEEE Robotics & Automation Magazine - December 2016 - 62
IEEE Robotics & Automation Magazine - December 2016 - 63
IEEE Robotics & Automation Magazine - December 2016 - 64
IEEE Robotics & Automation Magazine - December 2016 - 65
IEEE Robotics & Automation Magazine - December 2016 - 66
IEEE Robotics & Automation Magazine - December 2016 - 67
IEEE Robotics & Automation Magazine - December 2016 - 68
IEEE Robotics & Automation Magazine - December 2016 - 69
IEEE Robotics & Automation Magazine - December 2016 - 70
IEEE Robotics & Automation Magazine - December 2016 - 71
IEEE Robotics & Automation Magazine - December 2016 - 72
IEEE Robotics & Automation Magazine - December 2016 - 73
IEEE Robotics & Automation Magazine - December 2016 - 74
IEEE Robotics & Automation Magazine - December 2016 - 75
IEEE Robotics & Automation Magazine - December 2016 - 76
IEEE Robotics & Automation Magazine - December 2016 - 77
IEEE Robotics & Automation Magazine - December 2016 - 78
IEEE Robotics & Automation Magazine - December 2016 - 79
IEEE Robotics & Automation Magazine - December 2016 - 80
IEEE Robotics & Automation Magazine - December 2016 - 81
IEEE Robotics & Automation Magazine - December 2016 - 82
IEEE Robotics & Automation Magazine - December 2016 - 83
IEEE Robotics & Automation Magazine - December 2016 - 84
IEEE Robotics & Automation Magazine - December 2016 - 85
IEEE Robotics & Automation Magazine - December 2016 - 86
IEEE Robotics & Automation Magazine - December 2016 - 87
IEEE Robotics & Automation Magazine - December 2016 - 88
IEEE Robotics & Automation Magazine - December 2016 - 89
IEEE Robotics & Automation Magazine - December 2016 - 90
IEEE Robotics & Automation Magazine - December 2016 - 91
IEEE Robotics & Automation Magazine - December 2016 - 92
IEEE Robotics & Automation Magazine - December 2016 - 93
IEEE Robotics & Automation Magazine - December 2016 - 94
IEEE Robotics & Automation Magazine - December 2016 - 95
IEEE Robotics & Automation Magazine - December 2016 - 96
IEEE Robotics & Automation Magazine - December 2016 - 97
IEEE Robotics & Automation Magazine - December 2016 - 98
IEEE Robotics & Automation Magazine - December 2016 - 99
IEEE Robotics & Automation Magazine - December 2016 - 100
IEEE Robotics & Automation Magazine - December 2016 - 101
IEEE Robotics & Automation Magazine - December 2016 - 102
IEEE Robotics & Automation Magazine - December 2016 - 103
IEEE Robotics & Automation Magazine - December 2016 - 104
IEEE Robotics & Automation Magazine - December 2016 - 105
IEEE Robotics & Automation Magazine - December 2016 - 106
IEEE Robotics & Automation Magazine - December 2016 - 107
IEEE Robotics & Automation Magazine - December 2016 - 108
IEEE Robotics & Automation Magazine - December 2016 - 109
IEEE Robotics & Automation Magazine - December 2016 - 110
IEEE Robotics & Automation Magazine - December 2016 - 111
IEEE Robotics & Automation Magazine - December 2016 - 112
IEEE Robotics & Automation Magazine - December 2016 - 113
IEEE Robotics & Automation Magazine - December 2016 - 114
IEEE Robotics & Automation Magazine - December 2016 - 115
IEEE Robotics & Automation Magazine - December 2016 - 116
IEEE Robotics & Automation Magazine - December 2016 - 117
IEEE Robotics & Automation Magazine - December 2016 - 118
IEEE Robotics & Automation Magazine - December 2016 - 119
IEEE Robotics & Automation Magazine - December 2016 - 120
IEEE Robotics & Automation Magazine - December 2016 - 121
IEEE Robotics & Automation Magazine - December 2016 - 122
IEEE Robotics & Automation Magazine - December 2016 - 123
IEEE Robotics & Automation Magazine - December 2016 - 124
IEEE Robotics & Automation Magazine - December 2016 - 125
IEEE Robotics & Automation Magazine - December 2016 - 126
IEEE Robotics & Automation Magazine - December 2016 - 127
IEEE Robotics & Automation Magazine - December 2016 - 128
IEEE Robotics & Automation Magazine - December 2016 - 129
IEEE Robotics & Automation Magazine - December 2016 - 130
IEEE Robotics & Automation Magazine - December 2016 - 131
IEEE Robotics & Automation Magazine - December 2016 - 132
IEEE Robotics & Automation Magazine - December 2016 - 133
IEEE Robotics & Automation Magazine - December 2016 - 134
IEEE Robotics & Automation Magazine - December 2016 - 135
IEEE Robotics & Automation Magazine - December 2016 - 136
IEEE Robotics & Automation Magazine - December 2016 - 137
IEEE Robotics & Automation Magazine - December 2016 - 138
IEEE Robotics & Automation Magazine - December 2016 - 139
IEEE Robotics & Automation Magazine - December 2016 - 140
IEEE Robotics & Automation Magazine - December 2016 - 141
IEEE Robotics & Automation Magazine - December 2016 - 142
IEEE Robotics & Automation Magazine - December 2016 - 143
IEEE Robotics & Automation Magazine - December 2016 - 144
IEEE Robotics & Automation Magazine - December 2016 - 145
IEEE Robotics & Automation Magazine - December 2016 - 146
IEEE Robotics & Automation Magazine - December 2016 - 147
IEEE Robotics & Automation Magazine - December 2016 - 148
IEEE Robotics & Automation Magazine - December 2016 - 149
IEEE Robotics & Automation Magazine - December 2016 - 150
IEEE Robotics & Automation Magazine - December 2016 - 151
IEEE Robotics & Automation Magazine - December 2016 - 152
IEEE Robotics & Automation Magazine - December 2016 - 153
IEEE Robotics & Automation Magazine - December 2016 - 154
IEEE Robotics & Automation Magazine - December 2016 - 155
IEEE Robotics & Automation Magazine - December 2016 - 156
IEEE Robotics & Automation Magazine - December 2016 - 157
IEEE Robotics & Automation Magazine - December 2016 - 158
IEEE Robotics & Automation Magazine - December 2016 - 159
IEEE Robotics & Automation Magazine - December 2016 - 160
IEEE Robotics & Automation Magazine - December 2016 - 161
IEEE Robotics & Automation Magazine - December 2016 - 162
IEEE Robotics & Automation Magazine - December 2016 - 163
IEEE Robotics & Automation Magazine - December 2016 - 164
IEEE Robotics & Automation Magazine - December 2016 - 165
IEEE Robotics & Automation Magazine - December 2016 - 166
IEEE Robotics & Automation Magazine - December 2016 - 167
IEEE Robotics & Automation Magazine - December 2016 - 168
IEEE Robotics & Automation Magazine - December 2016 - 169
IEEE Robotics & Automation Magazine - December 2016 - 170
IEEE Robotics & Automation Magazine - December 2016 - 171
IEEE Robotics & Automation Magazine - December 2016 - 172
IEEE Robotics & Automation Magazine - December 2016 - 173
IEEE Robotics & Automation Magazine - December 2016 - 174
IEEE Robotics & Automation Magazine - December 2016 - 175
IEEE Robotics & Automation Magazine - December 2016 - 176
IEEE Robotics & Automation Magazine - December 2016 - 177
IEEE Robotics & Automation Magazine - December 2016 - 178
IEEE Robotics & Automation Magazine - December 2016 - 179
IEEE Robotics & Automation Magazine - December 2016 - 180
IEEE Robotics & Automation Magazine - December 2016 - 181
IEEE Robotics & Automation Magazine - December 2016 - 182
IEEE Robotics & Automation Magazine - December 2016 - 183
IEEE Robotics & Automation Magazine - December 2016 - 184
IEEE Robotics & Automation Magazine - December 2016 - 185
IEEE Robotics & Automation Magazine - December 2016 - 186
IEEE Robotics & Automation Magazine - December 2016 - 187
IEEE Robotics & Automation Magazine - December 2016 - 188
IEEE Robotics & Automation Magazine - December 2016 - 189
IEEE Robotics & Automation Magazine - December 2016 - 190
IEEE Robotics & Automation Magazine - December 2016 - 191
IEEE Robotics & Automation Magazine - December 2016 - 192
IEEE Robotics & Automation Magazine - December 2016 - 193
IEEE Robotics & Automation Magazine - December 2016 - 194
IEEE Robotics & Automation Magazine - December 2016 - 195
IEEE Robotics & Automation Magazine - December 2016 - 196
IEEE Robotics & Automation Magazine - December 2016 - 197
IEEE Robotics & Automation Magazine - December 2016 - 198
IEEE Robotics & Automation Magazine - December 2016 - 199
IEEE Robotics & Automation Magazine - December 2016 - 200
IEEE Robotics & Automation Magazine - December 2016 - 201
IEEE Robotics & Automation Magazine - December 2016 - 202
IEEE Robotics & Automation Magazine - December 2016 - 203
IEEE Robotics & Automation Magazine - December 2016 - 204
IEEE Robotics & Automation Magazine - December 2016 - Cover3
IEEE Robotics & Automation Magazine - December 2016 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com