"src/vscode:/vscode.git/clone" did not exist on "8696709e91d61811637c0199992f61bb50d72f94"
multi_val_dense_bin.cpp 1.84 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*!
 * Copyright (c) 2021 Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See LICENSE file in the project root for license information.
 */

#include "multi_val_dense_bin.hpp"

namespace LightGBM {


#ifdef USE_CUDA_EXP
template <>
const void* MultiValDenseBin<uint8_t>::GetRowWiseData(uint8_t* bit_type,
    size_t* total_size,
    bool* is_sparse,
    const void** out_data_ptr,
    uint8_t* data_ptr_bit_type) const {
  const uint8_t* to_return = data_.data();
  *bit_type = 8;
  *total_size = static_cast<size_t>(num_data_) * static_cast<size_t>(num_feature_);
  CHECK_EQ(*total_size, data_.size());
  *is_sparse = false;
  *out_data_ptr = nullptr;
  *data_ptr_bit_type = 0;
  return to_return;
}

template <>
const void* MultiValDenseBin<uint16_t>::GetRowWiseData(uint8_t* bit_type,
  size_t* total_size,
  bool* is_sparse,
  const void** out_data_ptr,
  uint8_t* data_ptr_bit_type) const {
  const uint16_t* data_ptr = data_.data();
  const uint8_t* to_return = reinterpret_cast<const uint8_t*>(data_ptr);
  *bit_type = 16;
  *total_size = static_cast<size_t>(num_data_) * static_cast<size_t>(num_feature_);
  CHECK_EQ(*total_size, data_.size());
  *is_sparse = false;
  *out_data_ptr = nullptr;
  *data_ptr_bit_type = 0;
  return to_return;
}

template <>
const void* MultiValDenseBin<uint32_t>::GetRowWiseData(uint8_t* bit_type,
  size_t* total_size,
  bool* is_sparse,
  const void** out_data_ptr,
  uint8_t* data_ptr_bit_type) const {
  const uint32_t* data_ptr = data_.data();
  const uint8_t* to_return = reinterpret_cast<const uint8_t*>(data_ptr);
  *bit_type = 32;
  *total_size = static_cast<size_t>(num_data_) * static_cast<size_t>(num_feature_);
  CHECK_EQ(*total_size, data_.size());
  *is_sparse = false;
  *out_data_ptr = nullptr;
  *data_ptr_bit_type = 0;
  return to_return;
}

#endif  // USE_CUDA_EXP

}  // namespace LightGBM