Skip to content

Commit b879a6b

Browse files
committed
use unordered map instead of map
1 parent 21a1c95 commit b879a6b

20 files changed

Lines changed: 114 additions & 114 deletions

stan/math/opencl/kernel_cl.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ inline tbb::concurrent_vector<cl::Event> select_events(K& m) {
135135
*/
136136
inline auto compile_kernel(const char* name,
137137
const std::vector<std::string>& sources,
138-
const std::map<std::string, int>& options) {
138+
const std::unordered_map<std::string, int>& options) {
139139
auto base_opts = opencl_context.base_opts();
140140
for (auto& it : options) {
141141
if (base_opts[it.first] > it.second) {
@@ -175,7 +175,7 @@ struct kernel_cl {
175175
private:
176176
const char* name_;
177177
std::vector<std::string> sources_;
178-
std::map<std::string, int> opts_;
178+
std::unordered_map<std::string, int> opts_;
179179
mutable cl::Kernel kernel_;
180180

181181
public:
@@ -187,7 +187,7 @@ struct kernel_cl {
187187
* @param options The values of macros to be passed at compile time.
188188
*/
189189
kernel_cl(const char* name, std::vector<std::string> sources,
190-
std::map<std::string, int> options = {})
190+
std::unordered_map<std::string, int> options = {})
191191
: name_(name), sources_(std::move(sources)), opts_(std::move(options)) {}
192192

193193
/** \ingroup kernel_executor_opencl

stan/math/opencl/kernel_generator/append.hpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ class append_row_ : public operation_cl<append_row_<T_a, T_b>,
8888
* @return part of kernel with code for this and nested expressions
8989
*/
9090
inline kernel_parts get_kernel_parts(
91-
std::map<const void*, const char*>& generated,
92-
std::map<const void*, const char*>& generated_all,
91+
std::unordered_map<const void*, const char*>& generated,
92+
std::unordered_map<const void*, const char*>& generated_all,
9393
name_generator& name_gen, const std::string& row_index_name,
9494
const std::string& col_index_name, bool view_handled) const {
9595
kernel_parts res{};
@@ -101,7 +101,7 @@ class append_row_ : public operation_cl<append_row_<T_a, T_b>,
101101
true);
102102
std::string row_index_name_b
103103
= "(" + row_index_name + " - " + var_name_ + "_first_rows)";
104-
std::map<const void*, const char*> generated_b;
104+
std::unordered_map<const void*, const char*> generated_b;
105105
kernel_parts parts_b = this->template get_arg<1>().get_kernel_parts(
106106
generated_b, generated_all, name_gen, row_index_name_b,
107107
col_index_name, true);
@@ -129,14 +129,14 @@ class append_row_ : public operation_cl<append_row_<T_a, T_b>,
129129
* @param[in,out] arg_num consecutive number of the first argument to set.
130130
* This is incremented for each argument set by this function.
131131
*/
132-
inline void set_args(std::map<const void*, const char*>& generated,
133-
std::map<const void*, const char*>& generated_all,
132+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
133+
std::unordered_map<const void*, const char*>& generated_all,
134134
cl::Kernel& kernel, int& arg_num) const {
135135
if (generated.count(this) == 0) {
136136
generated[this] = "";
137137
this->template get_arg<0>().set_args(generated, generated_all, kernel,
138138
arg_num);
139-
std::map<const void*, const char*> generated_b;
139+
std::unordered_map<const void*, const char*> generated_b;
140140
this->template get_arg<1>().set_args(generated_b, generated_all, kernel,
141141
arg_num);
142142
kernel.setArg(arg_num++, this->template get_arg<0>().rows());
@@ -250,8 +250,8 @@ class append_col_ : public operation_cl<append_col_<T_a, T_b>,
250250
* @return part of kernel with code for this and nested expressions
251251
*/
252252
inline kernel_parts get_kernel_parts(
253-
std::map<const void*, const char*>& generated,
254-
std::map<const void*, const char*>& generated_all,
253+
std::unordered_map<const void*, const char*>& generated,
254+
std::unordered_map<const void*, const char*>& generated_all,
255255
name_generator& name_gen, const std::string& row_index_name,
256256
const std::string& col_index_name, bool view_handled) const {
257257
kernel_parts res{};
@@ -263,7 +263,7 @@ class append_col_ : public operation_cl<append_col_<T_a, T_b>,
263263
true);
264264
std::string col_index_name_b
265265
= "(" + col_index_name + " - " + var_name_ + "_first_cols)";
266-
std::map<const void*, const char*> generated_b;
266+
std::unordered_map<const void*, const char*> generated_b;
267267
kernel_parts parts_b = this->template get_arg<1>().get_kernel_parts(
268268
generated_b, generated_all, name_gen, row_index_name,
269269
col_index_name_b, true);
@@ -291,14 +291,14 @@ class append_col_ : public operation_cl<append_col_<T_a, T_b>,
291291
* @param[in,out] arg_num consecutive number of the first argument to set.
292292
* This is incremented for each argument set by this function.
293293
*/
294-
inline void set_args(std::map<const void*, const char*>& generated,
295-
std::map<const void*, const char*>& generated_all,
294+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
295+
std::unordered_map<const void*, const char*>& generated_all,
296296
cl::Kernel& kernel, int& arg_num) const {
297297
if (generated.count(this) == 0) {
298298
generated[this] = "";
299299
this->template get_arg<0>().set_args(generated, generated_all, kernel,
300300
arg_num);
301-
std::map<const void*, const char*> generated_b;
301+
std::unordered_map<const void*, const char*> generated_b;
302302
this->template get_arg<1>().set_args(generated_b, generated_all, kernel,
303303
arg_num);
304304
kernel.setArg(arg_num++, this->template get_arg<0>().cols());

stan/math/opencl/kernel_generator/as_column_vector_or_scalar.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ class as_column_vector_or_scalar_
7171
* @return part of kernel with code for this and nested expressions
7272
*/
7373
inline kernel_parts get_kernel_parts(
74-
std::map<const void*, const char*>& generated,
75-
std::map<const void*, const char*>& generated_all,
74+
std::unordered_map<const void*, const char*>& generated,
75+
std::unordered_map<const void*, const char*>& generated_all,
7676
name_generator& name_gen, const std::string& row_index_name,
7777
const std::string& col_index_name, bool view_handled) const {
7878
kernel_parts res{};
@@ -82,7 +82,7 @@ class as_column_vector_or_scalar_
8282
std::string row_index_name_arg = row_index_name;
8383
std::string col_index_name_arg = col_index_name;
8484
modify_argument_indices(row_index_name_arg, col_index_name_arg);
85-
std::map<const void*, const char*> generated2;
85+
std::unordered_map<const void*, const char*> generated2;
8686
res = this->template get_arg<0>().get_kernel_parts(
8787
generated2, generated_all, name_gen, row_index_name_arg,
8888
col_index_name_arg, view_handled);
@@ -134,8 +134,8 @@ class as_column_vector_or_scalar_
134134
* @return part of kernel with code for this expressions
135135
*/
136136
inline kernel_parts get_kernel_parts_lhs(
137-
std::map<const void*, const char*>& generated,
138-
std::map<const void*, const char*>& generated_all,
137+
std::unordered_map<const void*, const char*>& generated,
138+
std::unordered_map<const void*, const char*>& generated_all,
139139
name_generator& name_gen, const std::string& row_index_name,
140140
const std::string& col_index_name) const {
141141
if (generated.count(this) == 0) {
@@ -145,7 +145,7 @@ class as_column_vector_or_scalar_
145145
std::string row_index_name_arg = row_index_name;
146146
std::string col_index_name_arg = col_index_name;
147147
modify_argument_indices(row_index_name_arg, col_index_name_arg);
148-
std::map<const void*, const char*> generated2;
148+
std::unordered_map<const void*, const char*> generated2;
149149
kernel_parts res = this->template get_arg<0>().get_kernel_parts_lhs(
150150
generated2, generated_all, name_gen, row_index_name_arg,
151151
col_index_name_arg);
@@ -185,12 +185,12 @@ class as_column_vector_or_scalar_
185185
* @param[in,out] arg_num consecutive number of the first argument to set.
186186
* This is incremented for each argument set by this function.
187187
*/
188-
inline void set_args(std::map<const void*, const char*>& generated,
189-
std::map<const void*, const char*>& generated_all,
188+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
189+
std::unordered_map<const void*, const char*>& generated_all,
190190
cl::Kernel& kernel, int& arg_num) const {
191191
if (generated.count(this) == 0) {
192192
generated[this] = "";
193-
std::map<const void*, const char*> generated2;
193+
std::unordered_map<const void*, const char*> generated2;
194194
this->template get_arg<0>().set_args(generated2, generated_all, kernel,
195195
arg_num);
196196
if (generated_all.count(this) == 0) {

stan/math/opencl/kernel_generator/block_zero_based.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ class block_
101101
* @return part of kernel with code for this and nested expressions
102102
*/
103103
inline kernel_parts get_kernel_parts(
104-
std::map<const void*, const char*>& generated,
105-
std::map<const void*, const char*>& generated_all,
104+
std::unordered_map<const void*, const char*>& generated,
105+
std::unordered_map<const void*, const char*>& generated_all,
106106
name_generator& name_gen, const std::string& row_index_name,
107107
const std::string& col_index_name, bool view_handled) const {
108108
kernel_parts res{};
@@ -112,7 +112,7 @@ class block_
112112
std::string row_index_name_arg = row_index_name;
113113
std::string col_index_name_arg = col_index_name;
114114
modify_argument_indices(row_index_name_arg, col_index_name_arg);
115-
std::map<const void*, const char*> generated2;
115+
std::unordered_map<const void*, const char*> generated2;
116116
res = this->template get_arg<0>().get_kernel_parts(
117117
generated2, generated_all, name_gen, row_index_name_arg,
118118
col_index_name_arg, view_handled);
@@ -175,8 +175,8 @@ class block_
175175
* @return part of kernel with code for this expressions
176176
*/
177177
inline kernel_parts get_kernel_parts_lhs(
178-
std::map<const void*, const char*>& generated,
179-
std::map<const void*, const char*>& generated_all,
178+
std::unordered_map<const void*, const char*>& generated,
179+
std::unordered_map<const void*, const char*>& generated_all,
180180
name_generator& name_gen, const std::string& row_index_name,
181181
const std::string& col_index_name) const {
182182
if (generated.count(this) == 0) {
@@ -186,7 +186,7 @@ class block_
186186
std::string row_index_name_arg = row_index_name;
187187
std::string col_index_name_arg = col_index_name;
188188
modify_argument_indices(row_index_name_arg, col_index_name_arg);
189-
std::map<const void*, const char*> generated2;
189+
std::unordered_map<const void*, const char*> generated2;
190190
kernel_parts res = this->template get_arg<0>().get_kernel_parts_lhs(
191191
generated2, generated_all, name_gen, row_index_name_arg,
192192
col_index_name_arg);
@@ -226,12 +226,12 @@ class block_
226226
* @param[in,out] arg_num consecutive number of the first argument to set.
227227
* This is incremented for each argument set by this function.
228228
*/
229-
inline void set_args(std::map<const void*, const char*>& generated,
230-
std::map<const void*, const char*>& generated_all,
229+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
230+
std::unordered_map<const void*, const char*>& generated_all,
231231
cl::Kernel& kernel, int& arg_num) const {
232232
if (generated.count(this) == 0) {
233233
generated[this] = "";
234-
std::map<const void*, const char*> generated2;
234+
std::unordered_map<const void*, const char*> generated2;
235235
this->template get_arg<0>().set_args(generated2, generated_all, kernel,
236236
arg_num);
237237
if (generated_all.count(this) == 0) {

stan/math/opencl/kernel_generator/calc_if.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class calc_if_
6666
*/
6767
template <typename T_result>
6868
kernel_parts get_whole_kernel_parts(
69-
std::map<const void*, const char*>& generated,
70-
std::map<const void*, const char*>& generated_all, name_generator& ng,
69+
std::unordered_map<const void*, const char*>& generated,
70+
std::unordered_map<const void*, const char*>& generated_all, name_generator& ng,
7171
const std::string& row_index_name, const std::string& col_index_name,
7272
const T_result& result) const {
7373
if (Do_Calculate) {
@@ -88,8 +88,8 @@ class calc_if_
8888
* @param[in,out] arg_num consecutive number of the first argument to set.
8989
* This is incremented for each argument set by this function.
9090
*/
91-
inline void set_args(std::map<const void*, const char*>& generated,
92-
std::map<const void*, const char*>& generated_all,
91+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
92+
std::unordered_map<const void*, const char*>& generated_all,
9393
cl::Kernel& kernel, int& arg_num) const {
9494
if (Do_Calculate) {
9595
this->template get_arg<0>().set_args(generated, generated_all, kernel,

stan/math/opencl/kernel_generator/check_cl.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ class check_cl_ : public operation_cl_lhs<check_cl_<T>, bool> {
7878
* @return part of kernel with code for this and nested expressions
7979
*/
8080
inline kernel_parts get_kernel_parts_lhs(
81-
std::map<const void*, const char*>& generated,
82-
std::map<const void*, const char*>& generated_all,
81+
std::unordered_map<const void*, const char*>& generated,
82+
std::unordered_map<const void*, const char*>& generated_all,
8383
name_generator& name_gen, const std::string& row_index_name,
8484
const std::string& col_index_name) const {
8585
kernel_parts res;
@@ -110,8 +110,8 @@ class check_cl_ : public operation_cl_lhs<check_cl_<T>, bool> {
110110
* @param[in,out] arg_num consecutive number of the first argument to set.
111111
* This is incremented for each argument set by this function.
112112
*/
113-
inline void set_args(std::map<const void*, const char*>& generated,
114-
std::map<const void*, const char*>& generated_all,
113+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
114+
std::unordered_map<const void*, const char*>& generated_all,
115115
cl::Kernel& kernel, int& arg_num) const {
116116
generated[this] = "";
117117
arg_.set_args(generated, generated_all, kernel, arg_num);

stan/math/opencl/kernel_generator/colwise_reduction.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ class colwise_reduction
9696
*/
9797
template <typename T_result>
9898
kernel_parts get_whole_kernel_parts(
99-
std::map<const void*, const char*>& generated,
100-
std::map<const void*, const char*>& generated_all, name_generator& ng,
99+
std::unordered_map<const void*, const char*>& generated,
100+
std::unordered_map<const void*, const char*>& generated_all, name_generator& ng,
101101
const std::string& row_index_name, const std::string& col_index_name,
102102
const T_result& result) const {
103103
kernel_parts parts = derived().get_kernel_parts(

stan/math/opencl/kernel_generator/constant.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ class constant_ : public operation_cl<constant_<T>, T> {
8080
* @param[in,out] arg_num consecutive number of the first argument to set.
8181
* This is incremented for each argument set by this function.
8282
*/
83-
inline void set_args(std::map<const void*, const char*>& generated,
84-
std::map<const void*, const char*>& generated_all,
83+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
84+
std::unordered_map<const void*, const char*>& generated_all,
8585
cl::Kernel& kernel, int& arg_num) const {
8686
if (generated.count(this) == 0) {
8787
generated[this] = "";

stan/math/opencl/kernel_generator/indexing.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ class indexing_
9292
* @return part of kernel with code for this and nested expressions
9393
*/
9494
inline kernel_parts get_kernel_parts(
95-
std::map<const void*, const char*>& generated,
96-
std::map<const void*, const char*>& generated_all,
95+
std::unordered_map<const void*, const char*>& generated,
96+
std::unordered_map<const void*, const char*>& generated_all,
9797
name_generator& name_gen, const std::string& row_index_name,
9898
const std::string& col_index_name, bool view_handled) const {
9999
kernel_parts res{};
@@ -110,7 +110,7 @@ class indexing_
110110
kernel_parts parts_col_idx = col_index.get_kernel_parts(
111111
generated, generated_all, name_gen, row_index_name, col_index_name,
112112
view_handled);
113-
std::map<const void*, const char*> generated2;
113+
std::unordered_map<const void*, const char*> generated2;
114114
kernel_parts parts_mat = mat.get_kernel_parts(
115115
generated2, generated_all, name_gen, row_index.var_name_,
116116
col_index.var_name_, false);
@@ -134,8 +134,8 @@ class indexing_
134134
* @return part of kernel with code for this expressions
135135
*/
136136
inline kernel_parts get_kernel_parts_lhs(
137-
std::map<const void*, const char*>& generated,
138-
std::map<const void*, const char*>& generated_all,
137+
std::unordered_map<const void*, const char*>& generated,
138+
std::unordered_map<const void*, const char*>& generated_all,
139139
name_generator& name_gen, const std::string& row_index_name,
140140
const std::string& col_index_name) const {
141141
if (generated.count(this) == 0) {
@@ -151,7 +151,7 @@ class indexing_
151151
kernel_parts parts_col_idx
152152
= col_index.get_kernel_parts(generated, generated_all, name_gen,
153153
row_index_name, col_index_name, false);
154-
std::map<const void*, const char*> generated2;
154+
std::unordered_map<const void*, const char*> generated2;
155155
kernel_parts parts_mat
156156
= mat.get_kernel_parts_lhs(generated2, generated_all, name_gen,
157157
row_index.var_name_, col_index.var_name_);
@@ -171,16 +171,16 @@ class indexing_
171171
* @param[in,out] arg_num consecutive number of the first argument to set.
172172
* This is incremented for each argument set by this function.
173173
*/
174-
inline void set_args(std::map<const void*, const char*>& generated,
175-
std::map<const void*, const char*>& generated_all,
174+
inline void set_args(std::unordered_map<const void*, const char*>& generated,
175+
std::unordered_map<const void*, const char*>& generated_all,
176176
cl::Kernel& kernel, int& arg_num) const {
177177
if (generated.count(this) == 0) {
178178
generated[this] = "";
179179
this->template get_arg<1>().set_args(generated, generated_all, kernel,
180180
arg_num);
181181
this->template get_arg<2>().set_args(generated, generated_all, kernel,
182182
arg_num);
183-
std::map<const void*, const char*> generated2;
183+
std::unordered_map<const void*, const char*> generated2;
184184
this->template get_arg<0>().set_args(generated2, generated_all, kernel,
185185
arg_num);
186186
}

0 commit comments

Comments
 (0)