forked from rapidsai/cudf
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add row conversion code from spark-rapids-jni (rapidsai#14664)
This temporarily moves the row conversion code from spark-rapids-jni into libcudf. It is necessary to have the row conversion code compiled in a static library to overcome a CCCL issue that triggers invalid memory access when calling to `thrust::in(ex)clusive_scan` (NVIDIA/spark-rapids-jni#1567). In the future, when we have CCCL updated to fix the issue (1567), we may need to move the code back into spark-rapids-jni. Authors: - Nghia Truong (https://github.com/ttnghia) Approvers: - Mike Wilson (https://github.com/hyperbolic2346) - Vyas Ramasubramani (https://github.com/vyasr) - MithunR (https://github.com/mythrocks) URL: rapidsai#14664
- Loading branch information
Showing
10 changed files
with
1,990 additions
and
1,012 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/* | ||
* Copyright (c) 2022-2023, NVIDIA CORPORATION. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include <memory> | ||
|
||
#include <cudf/lists/lists_column_view.hpp> | ||
#include <cudf/table/table_view.hpp> | ||
#include <cudf/utilities/default_stream.hpp> | ||
#include <rmm/cuda_stream_view.hpp> | ||
|
||
namespace cudf { | ||
//! @cond Doxygen_Suppress | ||
|
||
std::vector<std::unique_ptr<cudf::column>> convert_to_rows_fixed_width_optimized( | ||
cudf::table_view const& tbl, | ||
// TODO need something for validity | ||
rmm::cuda_stream_view stream = cudf::get_default_stream(), | ||
rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); | ||
|
||
std::vector<std::unique_ptr<cudf::column>> convert_to_rows( | ||
cudf::table_view const& tbl, | ||
// TODO need something for validity | ||
rmm::cuda_stream_view stream = cudf::get_default_stream(), | ||
rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); | ||
|
||
std::unique_ptr<cudf::table> convert_from_rows_fixed_width_optimized( | ||
cudf::lists_column_view const& input, | ||
std::vector<cudf::data_type> const& schema, | ||
rmm::cuda_stream_view stream = cudf::get_default_stream(), | ||
rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); | ||
|
||
std::unique_ptr<cudf::table> convert_from_rows( | ||
cudf::lists_column_view const& input, | ||
std::vector<cudf::data_type> const& schema, | ||
rmm::cuda_stream_view stream = cudf::get_default_stream(), | ||
rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); | ||
|
||
//! @endcond | ||
} // namespace cudf |
1,577 changes: 912 additions & 665 deletions
1,577
java/src/main/native/src/row_conversion.cu → cpp/src/transform/row_conversion.cu
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.