@@ -39,29 +39,30 @@ using Types = nvbench::type_list<cudf::timestamp_D,
39
39
template <class DataType >
40
40
void bench_convert_datetime (nvbench::state& state, nvbench::type_list<DataType>)
41
41
{
42
- auto const num_rows = static_cast <cudf::size_type>(state.get_int64 (" num_rows" ));
43
- auto const data_type = cudf::data_type (cudf::type_to_id<DataType>());
44
- auto const from_ts = state.get_string (" dir" ) == " from" ;
42
+ auto const num_rows = static_cast <cudf::size_type>(state.get_int64 (" num_rows" ));
43
+ auto const from_ts = state.get_string (" dir" ) == " from" ;
45
44
46
- auto const ts_col = create_random_column ( data_type. id (), row_count{num_rows} );
47
- cudf::column_view input ( ts_col-> view () );
45
+ auto const data_type = cudf:: data_type(cudf::type_to_id<DataType>() );
46
+ auto const ts_col = create_random_column (data_type. id (), row_count{num_rows} );
48
47
49
48
auto format = std::string{" %Y-%m-%d %H:%M:%S" };
49
+ auto s_col = cudf::strings::from_timestamps (ts_col->view (), format);
50
+ auto sv = cudf::strings_column_view (s_col->view ());
51
+
50
52
auto stream = cudf::get_default_stream ();
51
53
state.set_cuda_stream (nvbench::make_cuda_stream_view (stream.value ()));
52
54
53
55
if (from_ts) {
54
56
state.add_global_memory_reads <DataType>(num_rows);
55
- state.add_global_memory_writes <int8_t >((format.size () + 2 ) * num_rows); // +2 for 4-digit year
56
- state.exec (nvbench::exec_tag::sync,
57
- [&](nvbench::launch& launch) { cudf::strings::from_timestamps (input, format); });
57
+ state.add_global_memory_writes <int8_t >(sv.chars_size (stream));
58
+ state.exec (nvbench::exec_tag::sync, [&](nvbench::launch& launch) {
59
+ cudf::strings::from_timestamps (ts_col->view (), format);
60
+ });
58
61
} else {
59
- auto source = cudf::strings::from_timestamps (input, format);
60
- auto view = cudf::strings_column_view (source->view ());
61
- state.add_global_memory_reads <int8_t >(view.chars_size (stream));
62
+ state.add_global_memory_reads <int8_t >(sv.chars_size (stream));
62
63
state.add_global_memory_writes <DataType>(num_rows);
63
64
state.exec (nvbench::exec_tag::sync, [&](nvbench::launch& launch) {
64
- cudf::strings::to_timestamps (view , data_type, format);
65
+ cudf::strings::to_timestamps (sv , data_type, format);
65
66
});
66
67
}
67
68
}
@@ -70,4 +71,4 @@ NVBENCH_BENCH_TYPES(bench_convert_datetime, NVBENCH_TYPE_AXES(Types))
70
71
.set_name(" datetime" )
71
72
.set_type_axes_names({" DataType" })
72
73
.add_string_axis(" dir" , {" to" , " from" })
73
- .add_int64_axis(" num_rows" , {1 << 10 , 1 << 15 , 1 << 20 , 1 << 25 });
74
+ .add_int64_axis(" num_rows" , {1 << 16 , 1 << 18 , 1 << 20 , 1 << 22 });
0 commit comments