Skip to content

Commit 1c187fa

Browse files
committed
Merge remote-tracking branch 'fork/development' into simplify-niosv-sim
2 parents f3b648a + b4deef7 commit 1c187fa

File tree

5 files changed

+47
-41
lines changed

5 files changed

+47
-41
lines changed

DirectProgramming/C++SYCL/N-BodyMethods/Nbody/src/GSimulation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ void GSimulation::Start() {
205205
total_time_ = t0.Elapsed();
206206
total_flops_ = gflops * get_nsteps();
207207
av /= (double)(nf - 2);
208-
dev = sqrt(dev / (double)(nf - 2) - av * av);
208+
dev = std::sqrt(dev / (double)(nf - 2) - av * av);
209209

210210
std::cout << "\n";
211211
std::cout << "# Total Time (s) : " << total_time_ << "\n";

Libraries/oneMKL/monte_carlo_european_opt/src/montecarlo_main.cpp

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,18 @@ void run()
7373
double total_time = 0.0;
7474

7575
namespace mkl_rng = oneapi::mkl::rng;
76-
mkl_rng::mcg59 engine(
76+
#if USE_PHILOX
77+
using EngineTypeHost = mkl_rng::philox4x32x10;
78+
using EngineTypeDevice = mkl_rng::device::philox4x32x10<VEC_SIZE>;
79+
#elif USE_MRG
80+
using EngineTypeHost = mkl_rng::mrg32k3a;
81+
using EngineTypeDevice = mkl_rng::device::mrg32k3a<VEC_SIZE>;
82+
#else
83+
using EngineTypeHost = mkl_rng::mcg59;
84+
using EngineTypeDevice = mkl_rng::device::mcg59<VEC_SIZE>;
85+
#endif
86+
87+
EngineTypeHost engine(
7788
#if !INIT_ON_HOST
7889
my_queue,
7990
#else
@@ -86,18 +97,10 @@ void run()
8697
auto rng_event_3 = mkl_rng::generate(mkl_rng::uniform<DataType>(1.0, 5.0), engine, num_options, h_option_years_ptr);
8798

8899
std::size_t n_states = global_size;
89-
using EngineType =
90-
#if USE_PHILOX
91-
mkl_rng::device::philox4x32x10<VEC_SIZE>;
92-
#elif USE_MRG
93-
mkl_rng::device::mrg32k3a<VEC_SIZE>;
94-
#else
95-
mkl_rng::device::mcg59<VEC_SIZE>;
96-
#endif
97100

98101
// initialization needs only on first step
99102
auto deleter = [my_queue](auto* ptr) {sycl::free(ptr, my_queue);};
100-
auto rng_states_uptr = std::unique_ptr<EngineType, decltype(deleter)>(sycl::malloc_device<EngineType>(n_states, my_queue), deleter);
103+
auto rng_states_uptr = std::unique_ptr<EngineTypeDevice, decltype(deleter)>(sycl::malloc_device<EngineTypeDevice>(n_states, my_queue), deleter);
101104
auto* rng_states = rng_states_uptr.get();
102105

103106
my_queue.parallel_for<k_initialize_state<DataType>>(
@@ -107,9 +110,9 @@ void run()
107110
auto id = idx[0];
108111
#if USE_MRG
109112
constexpr std::uint32_t seed = 12345u;
110-
rng_states[id] = EngineType({ seed, seed, seed, seed, seed, seed }, { 0, (4096 * id) });
113+
rng_states[id] = EngineTypeDevice({ seed, seed, seed, seed, seed, seed }, { 0, (4096 * id) });
111114
#else
112-
rng_states[id] = EngineType(rand_seed, id * ITEMS_PER_WORK_ITEM * VEC_SIZE * block_n);
115+
rng_states[id] = EngineTypeDevice(rand_seed, id * ITEMS_PER_WORK_ITEM * VEC_SIZE * block_n);
113116
#endif
114117
})
115118
.wait_and_throw();

Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ void run_sparse_cg_example(const sycl::device &dev)
138138
try {
139139
mkl::sparse::init_matrix_handle(&handle);
140140

141-
mkl::sparse::set_csr_data(handle, nrows, nrows, mkl::index_base::zero,
141+
mkl::sparse::set_csr_data(main_queue, handle, nrows, nrows, mkl::index_base::zero,
142142
ia_buffer, ja_buffer, a_buffer);
143143

144144
mkl::sparse::set_matrix_property(handle, mkl::sparse::property::symmetric);
@@ -174,13 +174,14 @@ void run_sparse_cg_example(const sycl::device &dev)
174174

175175
// Calculation B^{-1}r_0
176176
{
177+
fp alpha = 1.0;
177178
mkl::sparse::trsv(main_queue, mkl::uplo::lower,
178-
mkl::transpose::nontrans, mkl::diag::nonunit,
179-
handle, r_buffer, t_buffer);
179+
mkl::transpose::nontrans,
180+
mkl::diag::nonunit, alpha, handle, r_buffer, t_buffer);
180181
diagonal_mv<fp, intType>(main_queue, nrows, d_buffer, t_buffer);
181182
mkl::sparse::trsv(main_queue, mkl::uplo::upper,
182-
mkl::transpose::nontrans, mkl::diag::nonunit,
183-
handle, t_buffer, w_buffer);
183+
mkl::transpose::nontrans,
184+
mkl::diag::nonunit, alpha, handle, t_buffer, w_buffer);
184185
}
185186

186187
mkl::blas::copy(main_queue, nrows, w_buffer, 1, p_buffer, 1);
@@ -225,13 +226,14 @@ void run_sparse_cg_example(const sycl::device &dev)
225226

226227
// Calculate w_k = B^{-1}r_k
227228
{
229+
fp alpha = 1.0;
228230
mkl::sparse::trsv(main_queue, mkl::uplo::lower,
229231
mkl::transpose::nontrans,
230-
mkl::diag::nonunit, handle, r_buffer, t_buffer);
232+
mkl::diag::nonunit, alpha, handle, r_buffer, t_buffer);
231233
diagonal_mv<fp, intType>(main_queue, nrows, d_buffer, t_buffer);
232234
mkl::sparse::trsv(main_queue, mkl::uplo::upper,
233235
mkl::transpose::nontrans,
234-
mkl::diag::nonunit, handle, t_buffer, w_buffer);
236+
mkl::diag::nonunit, alpha, handle, t_buffer, w_buffer);
235237
}
236238

237239
// Calculate current norm of correction
@@ -271,8 +273,9 @@ void run_sparse_cg_example(const sycl::device &dev)
271273
catch (std::exception const &e) {
272274
std::cout << "\t\tCaught exception:\n" << e.what() << std::endl;
273275
}
274-
275-
mkl::sparse::release_matrix_handle(&handle);
276+
277+
mkl::sparse::release_matrix_handle(main_queue, &handle);
278+
main_queue.wait();
276279
}
277280

278281
//

Libraries/oneMKL/student_t_test/t_test.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ template <typename RealType>
3939
std::int32_t t_test(sycl::queue &q, sycl::buffer<RealType, 1> &r,
4040
std::int64_t n, RealType expected_mean) {
4141
std::int32_t res = -1;
42-
RealType sqrt_n_observations = sycl::sqrt(static_cast<RealType>(n));
42+
RealType sqrt_n_observations = std::sqrt(static_cast<RealType>(n));
4343

4444
// Create buffers to be passed inside oneMKL stats functions
4545
sycl::buffer<RealType, 1> mean_buf(sycl::range{1});
@@ -55,8 +55,8 @@ std::int32_t t_test(sycl::queue &q, sycl::buffer<RealType, 1> &r,
5555
// Create Host accessors and check the condition
5656
sycl::host_accessor mean_acc(mean_buf);
5757
sycl::host_accessor variance_acc(variance_buf);
58-
if ((sycl::abs(mean_acc[0] - expected_mean) * sqrt_n_observations /
59-
sycl::sqrt(variance_acc[0])) < static_cast<RealType>(threshold)) {
58+
if ((std::abs(mean_acc[0] - expected_mean) * sqrt_n_observations /
59+
std::sqrt(variance_acc[0])) < static_cast<RealType>(threshold)) {
6060
res = 1;
6161
} else {
6262
res = 0;
@@ -100,19 +100,19 @@ std::int32_t t_test(sycl::queue &q, sycl::buffer<RealType, 1> &r1,
100100
bool almost_equal = (variance1_acc[0] < 2 * variance2_acc[0]) ||
101101
(variance2_acc[0] < 2 * variance1_acc[0]);
102102
if (almost_equal) {
103-
if ((sycl::abs(mean1_acc[0] - mean2_acc[0]) /
104-
sycl::sqrt((static_cast<RealType>(1.0) / static_cast<RealType>(n1) +
105-
static_cast<RealType>(1.0) / static_cast<RealType>(n2)) *
106-
((n1 - 1) * (n1 - 1) * variance1_acc[0] +
107-
(n2 - 1) * (n2 - 1) * variance2_acc[0]) /
108-
(n1 + n2 - 2))) < static_cast<RealType>(threshold)) {
103+
if ((std::abs(mean1_acc[0] - mean2_acc[0]) /
104+
std::sqrt((static_cast<RealType>(1.0) / static_cast<RealType>(n1) +
105+
static_cast<RealType>(1.0) / static_cast<RealType>(n2)) *
106+
((n1 - 1) * (n1 - 1) * variance1_acc[0] +
107+
(n2 - 1) * (n2 - 1) * variance2_acc[0]) /
108+
(n1 + n2 - 2))) < static_cast<RealType>(threshold)) {
109109
res = 1;
110110
} else {
111111
res = 0;
112112
}
113113
} else {
114-
if ((sycl::abs(mean1_acc[0] - mean2_acc[0]) /
115-
sycl::sqrt((variance1_acc[0] + variance2_acc[0]))) <
114+
if ((std::abs(mean1_acc[0] - mean2_acc[0]) /
115+
std::sqrt((variance1_acc[0] + variance2_acc[0]))) <
116116
static_cast<RealType>(threshold)) {
117117
res = 1;
118118
} else {

Libraries/oneMKL/student_t_test/t_test_usm.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ template <typename RealType>
3939
std::int32_t t_test(sycl::queue& q, RealType* r, std::int64_t n,
4040
RealType expected_mean) {
4141
std::int32_t res = -1;
42-
RealType sqrt_n_observations = sycl::sqrt(static_cast<RealType>(n));
42+
RealType sqrt_n_observations = std::sqrt(static_cast<RealType>(n));
4343

4444
// Allocate memory to be passed inside oneMKL stats functions
4545
RealType* mean = sycl::malloc_shared<RealType>(1, q);
@@ -53,8 +53,8 @@ std::int32_t t_test(sycl::queue& q, RealType* r, std::int64_t n,
5353
oneapi::mkl::stats::central_moment(q, mean, dataset, variance);
5454
q.wait_and_throw();
5555
// Check the condition
56-
if ((sycl::abs(mean[0] - expected_mean) * sqrt_n_observations /
57-
sycl::sqrt(variance[0])) < static_cast<RealType>(threshold)) {
56+
if ((std::abs(mean[0] - expected_mean) * sqrt_n_observations /
57+
std::sqrt(variance[0])) < static_cast<RealType>(threshold)) {
5858
res = 1;
5959
} else {
6060
res = 0;
@@ -95,8 +95,8 @@ std::int32_t t_test(sycl::queue& q, RealType* r1, std::int64_t n1,
9595
bool almost_equal =
9696
(variance1[0] < 2 * variance2[0]) || (variance2[0] < 2 * variance1[0]);
9797
if (almost_equal) {
98-
if ((sycl::abs(mean1[0] - mean2[0]) /
99-
sycl::sqrt((static_cast<RealType>(1.0) / static_cast<RealType>(n1) +
98+
if ((std::abs(mean1[0] - mean2[0]) /
99+
std::sqrt((static_cast<RealType>(1.0) / static_cast<RealType>(n1) +
100100
static_cast<RealType>(1.0) / static_cast<RealType>(n2)) *
101101
((n1 - 1) * (n1 - 1) * variance1[0] +
102102
(n2 - 1) * (n2 - 1) * variance2[0]) /
@@ -106,8 +106,8 @@ std::int32_t t_test(sycl::queue& q, RealType* r1, std::int64_t n1,
106106
res = 0;
107107
}
108108
} else {
109-
if ((sycl::abs(mean1[0] - mean2[0]) /
110-
sycl::sqrt((variance1[0] + variance2[0]))) <
109+
if ((std::abs(mean1[0] - mean2[0]) /
110+
std::sqrt((variance1[0] + variance2[0]))) <
111111
static_cast<RealType>(threshold)) {
112112
res = 1;
113113
} else {
@@ -201,4 +201,4 @@ int main(int argc, char** argv) {
201201
std::cout << "T-test result with two input arrays: " << res1 << "\n\n";
202202

203203
return 0;
204-
}
204+
}

0 commit comments

Comments
 (0)