Skip to content

Commit 7aa1db7

Browse files
authored
[core] fix incorrect bubble sort in sort_cpuid_by_max_freq, add header file that should be included in metal_converter.h,test=develop (#10518)
1 parent 0741366 commit 7aa1db7

File tree

2 files changed

+4
-15
lines changed

2 files changed

+4
-15
lines changed

lite/backends/metal/metal_converter.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "lite/backends/metal/metal_common.h"
1919
#include "lite/backends/metal/metal_half.h"
2020
#include "lite/core/dim.h"
21+
#include <cassert>
2122

2223
namespace paddle {
2324
namespace lite {

lite/core/device_info.cc

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -422,24 +422,12 @@ void sort_cpuid_by_max_freq(const std::vector<int>& max_freqs,
422422
for (int i = 0; i < cpu_num; i++) {
423423
cpu_ids->at(i) = i;
424424
}
425-
// sort cpuid as big core first
426-
// simple bubble sort
427-
for (int i = 0; i < cpu_num; i++) {
428-
for (int j = i + 1; j < cpu_num; j++) {
429-
if (max_freqs[i] < max_freqs[j]) {
430-
// swap
431-
int tmp = cpu_ids->at(i);
432-
cpu_ids->at(i) = cpu_ids->at(j);
433-
cpu_ids->at(j) = tmp;
434-
}
435-
}
436-
}
437425
// SMP
438-
int mid_max_freq =
439-
(max_freqs[cpu_ids->at(0)] + max_freqs[cpu_ids->at(cpu_num - 1)]) / 2;
426+
int freq_max = *std::max_element(max_freqs.begin(), max_freqs.end());
427+
int freq_min = *std::min_element(max_freqs.begin(), max_freqs.end());
428+
int mid_max_freq = (freq_max + freq_min) / 2;
440429

441430
for (int i = 0; i < cpu_num; i++) {
442-
cpu_ids->at(i) = i;
443431
if (max_freqs[i] >= mid_max_freq) {
444432
cluster_ids->at(i) = 0;
445433
} else {

0 commit comments

Comments
 (0)