Bobby Bruce has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/70418?usp=email )
Change subject: gpu-compute: Remove use of 'std::random_shuffle'
......................................................................
gpu-compute: Remove use of 'std::random_shuffle'
This was deprecated in C++14 and removed in C++17. This has been
replaced with std::random. This has been implemented to ensure
reproducible results despite (pseudo)random behavior.
Change-Id: Idd52bc997547c7f8c1be88f6130adff8a37b4116
M src/cpu/testers/gpu_ruby_test/address_manager.cc
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/cpu/testers/gpu_ruby_test/address_manager.cc
b/src/cpu/testers/gpu_ruby_test/address_manager.cc
index 37f7420..533184d 100644
--- a/src/cpu/testers/gpu_ruby_test/address_manager.cc
+++ b/src/cpu/testers/gpu_ruby_test/address_manager.cc
@@ -32,6 +32,7 @@
#include "cpu/testers/gpu_ruby_test/address_manager.hh"
#include <algorithm>
+#include <random>
#include "base/intmath.hh"
#include "base/logging.hh"
@@ -52,14 +53,21 @@
numNormalLocs = numAtomicLocs * numLocsPerAtomic;
// generate random address map
- // randomly shuffle randAddressMap
- std::random_shuffle(randAddressMap.begin(), randAddressMap.end());
-
// randomly shuffle randAddressMap. Seed is determined by the
addressmap
-
// properties so should produce identical shuffles for same input.
-
std::shuffle(
-
randAddressMap.begin(),
-
randAddressMap.end(),
-
std::default_random_engine(shuffle_seed)
-
);
// initialize atomic locations
// first and last normal location per atomic location
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/70418?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Idd52bc997547c7f8c1be88f6130adff8a37b4116
Gerrit-Change-Number: 70418
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby Bruce bbruce@ucdavis.edu
Bobby Bruce has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/70418?usp=email )
Change subject: gpu-compute: Remove use of 'std::random_shuffle'
......................................................................
gpu-compute: Remove use of 'std::random_shuffle'
This was deprecated in C++14 and removed in C++17. This has been
replaced with std::random. This has been implemented to ensure
reproducible results despite (pseudo)random behavior.
Change-Id: Idd52bc997547c7f8c1be88f6130adff8a37b4116
---
M src/cpu/testers/gpu_ruby_test/address_manager.cc
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/cpu/testers/gpu_ruby_test/address_manager.cc
b/src/cpu/testers/gpu_ruby_test/address_manager.cc
index 37f7420..533184d 100644
--- a/src/cpu/testers/gpu_ruby_test/address_manager.cc
+++ b/src/cpu/testers/gpu_ruby_test/address_manager.cc
@@ -32,6 +32,7 @@
#include "cpu/testers/gpu_ruby_test/address_manager.hh"
#include <algorithm>
+#include <random>
#include "base/intmath.hh"
#include "base/logging.hh"
@@ -52,14 +53,21 @@
numNormalLocs = numAtomicLocs * numLocsPerAtomic;
// generate random address map
+ unsigned shuffle_seed = randAddressMap.size();
randAddressMap.resize(numAtomicLocs + numNormalLocs);
for (Location i = 0; i < numAtomicLocs + numNormalLocs; ++i) {
// all addresses are sizeof(Value) (i.e., 4-byte) aligned
randAddressMap[i] = (Addr)((i + 128) << floorLog2(sizeof(Value)));
+ shuffle_seed += randAddressMap[i];
}
- // randomly shuffle randAddressMap
- std::random_shuffle(randAddressMap.begin(), randAddressMap.end());
+ // randomly shuffle randAddressMap. Seed is determined by the
addressmap
+ // properties so should produce identical shuffles for same input.
+ std::shuffle(
+ randAddressMap.begin(),
+ randAddressMap.end(),
+ std::default_random_engine(shuffle_seed)
+ );
// initialize atomic locations
// first and last normal location per atomic location
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/70418?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Idd52bc997547c7f8c1be88f6130adff8a37b4116
Gerrit-Change-Number: 70418
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby Bruce <bbruce@ucdavis.edu>