1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[cuDF]C++ libcudfのgithubを読み解く ~file_io_utilitiesとは~

Last updated at Posted at 2024-08-06

Perplexityによるまとめ
Perplexityによるfile_io_utilities解説

file_io_utilities.cpp

read_binary_file

この関数は、指定されたファイルパスからバイナリデータを読み込み、std::vector<char>として返します。ファイルが存在しない場合や読み込みに失敗した場合は例外をスローします。

write_binary_file

この関数は、指定されたファイルパスにバイナリデータを書き込みます。データはstd::vector<char>として渡され、ファイルに書き込まれます。書き込みに失敗した場合は例外をスローします。

arrow_io_source.cpp

arrow_io_source クラス

このクラスは、Apache Arrowのio::RandomAccessFileインターフェースを実装し、ランダムアクセスファイルの読み取り操作をサポートします。

arrow_io_source コンストラクタ

Arrowのio::RandomAccessFileを受け取り、内部メンバに保存します。

Read メソッド

指定されたバイト数を読み取り、バッファに格納します。読み取りに成功したバイト数を返します。

ReadAt メソッド

指定されたオフセットからバイト数を読み取り、バッファに格納します。読み取りに成功したバイト数を返します。

GetSize メソッド

ファイルのサイズを返します。

Seek メソッド

指定されたオフセットにファイルポインタを移動します。

column_buffer.cpp

column_buffer クラス

このクラスは、カラムデータをバッファとして管理するためのユーティリティを提供します。

column_buffer コンストラクタ

カラムのデータ型とサイズを受け取り、バッファを初期化します。

data メソッド

バッファのデータへのポインタを返します。

size メソッド

バッファのサイズを返します。

column_buffer_strings.cu

create_string_column

この関数は、文字列データからcudf::columnを作成します。文字列データはstd::vector<std::string>として渡され、cudf::columnに変換されます。

create_offsets

この関数は、文字列のオフセットを計算し、std::vector<int>として返します。各オフセットは文字列データの開始位置を示します。

parsing_utils.cuh

parse_value

この関数は、文字列から特定のデータ型に値をパースします。テンプレート関数として実装されており、異なるデータ型に対応しています。

trim_whitespace

この関数は、文字列の前後の空白を取り除きます。入力文字列を受け取り、空白を取り除いた新しい文字列を返します。

split_string

この関数は、指定されたデリミタで文字列を分割し、std::vector<std::string>として返します。

file_io_utilities.cpp

read_binary_file

この関数は、指定されたファイルパスからバイナリデータを読み込む役割を果たします。具体的には、以下の手順で動作します。

  1. ファイルのオープン: 指定されたファイルパスを使用してファイルをバイナリモードで開きます。
  2. ファイルサイズの取得: ファイルポインタを末尾に移動し、ファイルサイズを取得します。
  3. データの読み込み: ファイルポインタを先頭に戻し、ファイル全体をバッファに読み込みます。
  4. バッファの返却: 読み込んだデータをstd::vector<char>として返します。

この関数は、ファイルが存在しない場合や読み込みに失敗した場合に例外をスローします。

write_binary_file

この関数は、指定されたファイルパスにバイナリデータを書き込む役割を果たします。具体的には、以下の手順で動作します。

  1. ファイルのオープン: 指定されたファイルパスを使用してファイルをバイナリモードで開きます。既存のファイルがある場合は上書きされます。
  2. データの書き込み: 引数として渡されたstd::vector<char>のデータをファイルに書き込みます。
  3. ファイルのクローズ: 書き込みが完了したらファイルを閉じます。

この関数も、書き込みに失敗した場合に例外をスローします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?