gbrl 1.0.0.dev7__tar.gz → 1.0.1.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. gbrl-1.0.1.dev0/CMakeLists.txt +236 -0
  2. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/LICENSE +3 -1
  3. gbrl-1.0.1.dev0/LICENSES.txt +347 -0
  4. gbrl-1.0.1.dev0/MANIFEST.in +10 -0
  5. gbrl-1.0.1.dev0/PKG-INFO +97 -0
  6. gbrl-1.0.1.dev0/README.md +69 -0
  7. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/__init__.py +1 -1
  8. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/ac_gbrl.py +223 -40
  9. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/config.py +0 -0
  10. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/gbrl_wrapper.py +205 -84
  11. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/gbt.py +118 -15
  12. gbrl-1.0.1.dev0/gbrl/src/cpp/CMakeLists.txt +57 -0
  13. gbrl-1.0.1.dev0/gbrl/src/cpp/config.h +16 -0
  14. gbrl-1.0.1.dev0/gbrl/src/cpp/data_structs.cpp +63 -0
  15. gbrl-1.0.1.dev0/gbrl/src/cpp/data_structs.h +28 -0
  16. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/fitter.cpp +67 -30
  17. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/fitter.h +8 -0
  18. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/gbrl.cpp +122 -37
  19. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/gbrl.h +13 -5
  20. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/gbrl_binding.cpp +145 -7
  21. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/loss.cpp +14 -3
  22. gbrl-1.0.1.dev0/gbrl/src/cpp/loss.h +21 -0
  23. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/math_ops.cpp +305 -55
  24. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/math_ops.h +35 -7
  25. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/node.cpp +89 -61
  26. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/node.h +13 -5
  27. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/optimizer.cpp +16 -5
  28. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/optimizer.h +12 -3
  29. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/predictor.cpp +15 -3
  30. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/predictor.h +8 -0
  31. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/scheduler.cpp +8 -0
  32. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/scheduler.h +8 -0
  33. gbrl-1.0.1.dev0/gbrl/src/cpp/shap.cpp +444 -0
  34. gbrl-1.0.1.dev0/gbrl/src/cpp/shap.h +42 -0
  35. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/split_candidate_generator.cpp +21 -2
  36. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/split_candidate_generator.h +8 -0
  37. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/types.cpp +30 -12
  38. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/types.h +19 -0
  39. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/utils.cpp +33 -1
  40. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cpp/utils.h +21 -0
  41. gbrl-1.0.1.dev0/gbrl/src/cuda/CMakeLists.txt +35 -0
  42. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_fitter.cu +85 -148
  43. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_fitter.h +17 -13
  44. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_loss.cu +8 -0
  45. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_loss.h +10 -2
  46. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_predictor.cu +25 -18
  47. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_predictor.h +9 -1
  48. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_preprocess.cu +9 -6
  49. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_preprocess.h +8 -0
  50. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_types.cu +31 -10
  51. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_types.h +9 -0
  52. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl/src/cuda/cuda_utils.cu +8 -0
  53. gbrl-1.0.1.dev0/gbrl/src/cuda/cuda_utils.h +24 -0
  54. gbrl-1.0.1.dev0/gbrl/utils.py +118 -0
  55. gbrl-1.0.1.dev0/gbrl.egg-info/PKG-INFO +97 -0
  56. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl.egg-info/SOURCES.txt +9 -1
  57. gbrl-1.0.1.dev0/gbrl.egg-info/requires.txt +8 -0
  58. gbrl-1.0.1.dev0/gbrl.egg-info/top_level.txt +3 -0
  59. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/pyproject.toml +14 -7
  60. gbrl-1.0.1.dev0/setup.py +101 -0
  61. gbrl-1.0.1.dev0/tests/__init__.py +120 -0
  62. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/tests/test_gbt_multi.py +50 -17
  63. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/tests/test_gbt_single.py +65 -26
  64. gbrl-1.0.0.dev7/MANIFEST.in +0 -4
  65. gbrl-1.0.0.dev7/PKG-INFO +0 -121
  66. gbrl-1.0.0.dev7/README.md +0 -99
  67. gbrl-1.0.0.dev7/gbrl/src/cpp/config.h +0 -9
  68. gbrl-1.0.0.dev7/gbrl/src/cpp/loss.h +0 -13
  69. gbrl-1.0.0.dev7/gbrl/src/cpp/main.cpp +0 -362
  70. gbrl-1.0.0.dev7/gbrl/src/cuda/cuda_utils.h +0 -16
  71. gbrl-1.0.0.dev7/gbrl/utils.py +0 -60
  72. gbrl-1.0.0.dev7/gbrl.egg-info/PKG-INFO +0 -121
  73. gbrl-1.0.0.dev7/gbrl.egg-info/requires.txt +0 -6
  74. gbrl-1.0.0.dev7/gbrl.egg-info/top_level.txt +0 -1
  75. gbrl-1.0.0.dev7/setup.py +0 -264
  76. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/gbrl.egg-info/dependency_links.txt +0 -0
  77. {gbrl-1.0.0.dev7 → gbrl-1.0.1.dev0}/setup.cfg +0 -0
@@ -0,0 +1,236 @@
1
+ ##############################################################################
2
+ # Copyright (c) 2024, NVIDIA Corporation. All rights reserved.
3
+ #
4
+ # This work is made available under the Nvidia Source Code License-NC.
5
+ # To view a copy of this license, visit
6
+ # https://nvlabs.github.io/gbrl/license.html
7
+ #
8
+ ##############################################################################
9
+ cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
10
+ # Set project details
11
+ project(gbrl LANGUAGES C CXX VERSION 1.0.0)
12
+ # Set C++14
13
+ set(CMAKE_CXX_STANDARD 14)
14
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
15
+ # Default to release build type
16
+ if (NOT CMAKE_BUILD_TYPE)
17
+ set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
18
+ endif()
19
+
20
+ if (POLICY CMP0148)
21
+ cmake_policy(SET CMP0148 NEW)
22
+ endif()
23
+
24
+ # Allow overriding Python paths
25
+ if (DEFINED PYTHON_EXECUTABLE)
26
+ set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "Path to the Python executable")
27
+ endif()
28
+
29
+ if (DEFINED PYTHON_INCLUDE_DIR)
30
+ set(Python3_INCLUDE_DIR ${PYTHON_INCLUDE_DIR} CACHE FILEPATH "Path to the Python include directory")
31
+ endif()
32
+
33
+ if (DEFINED PYTHON_LIBRARY)
34
+ set(Python3_LIBRARY ${PYTHON_LIBRARY} CACHE FILEPATH "Path to the Python library")
35
+ endif()
36
+
37
+ # Find Python 3
38
+ find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
39
+
40
+ #-- Options
41
+ include(CMakeDependentOption)
42
+ option(USE_CUDA "Build with GPU acceleration" OFF)
43
+ # Check for CUDA availability
44
+ if (USE_CUDA AND NOT APPLE)
45
+ find_package(CUDAToolkit QUIET HINTS $ENV{CONDA_PREFIX})
46
+ # 2. Fallback to system-wide CUDA if not found in Anaconda
47
+ if (NOT CUDAToolkit_FOUND)
48
+ find_package(CUDAToolkit QUIET)
49
+ endif()
50
+ if (CUDAToolkit_FOUND)
51
+ set(CUDA_VERSION "${CUDAToolkit_VERSION_MAJOR}${CUDAToolkit_VERSION_MINOR}")
52
+ # Ensure CUDA architectures are set before enabling CUDA language
53
+ set(CUDA_ARCHS "60" "61" "62" "70" "75")
54
+
55
+ if(${CUDA_VERSION} VERSION_GREATER_EQUAL "110")
56
+ list(APPEND CUDA_ARCHS "80")
57
+ endif()
58
+ if(${CUDA_VERSION} VERSION_GREATER_EQUAL "111")
59
+ list(APPEND CUDA_ARCHS "86")
60
+ endif()
61
+ if(${CUDA_VERSION} VERSION_GREATER_EQUAL "115")
62
+ list(APPEND CUDA_ARCHS "87")
63
+ endif()
64
+ if(${CUDA_VERSION} VERSION_GREATER_EQUAL "118")
65
+ list(APPEND CUDA_ARCHS "89")
66
+ list(APPEND CUDA_ARCHS "90")
67
+ endif()
68
+ list(POP_BACK CUDA_ARCHS CUDA_LAST_SUPPORTED_ARCH)
69
+ list(APPEND CUDA_ARCHS "${CUDA_LAST_SUPPORTED_ARCH}-virtual")
70
+ set(CMAKE_CUDA_ARCHITECTURES ${CUDA_ARCHS})
71
+
72
+ if(NOT DEFINED CMAKE_CUDA_HOST_COMPILER AND NOT DEFINED ENV{CUDAHOSTCXX})
73
+ set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} CACHE FILEPATH
74
+ "The compiler executable to use when compiling host code for CUDA")
75
+ mark_as_advanced(CMAKE_CUDA_HOST_COMPILER)
76
+ message(STATUS "Configured CUDA host compiler: ${CMAKE_CUDA_HOST_COMPILER}")
77
+ endif()
78
+ if(NOT DEFINED CMAKE_CUDA_COMPILER)
79
+ if(DEFINED ENV{CUDACXX})
80
+ set(CMAKE_CUDA_COMPILER $ENV{CUDACXX} CACHE FILEPATH "CUDA Compiler")
81
+ message(STATUS "CMAKE_CUDA_COMPILER set to $ENV{CUDACXX} from environment.")
82
+ else()
83
+ message(STATUS "Setting CMAKE_CUDA_COMPILER to ${CUDAToolkit_NVCC_EXECUTABLE}")
84
+ set(CMAKE_CUDA_COMPILER "${CUDAToolkit_NVCC_EXECUTABLE}")
85
+ endif()
86
+ else()
87
+ message(STATUS "CMAKE_CUDA_COMPILER=${CMAKE_CUDA_COMPILER}")
88
+ endif()
89
+ # Validate the compiler before enabling CUDA
90
+ if (NOT EXISTS ${CMAKE_CUDA_COMPILER})
91
+ message(WARNING "CUDA toolkit found, but could not locate nvcc at ${CMAKE_CUDA_COMPILER}. Disabling GPU acceleration.")
92
+ set(USE_CUDA OFF)
93
+ endif()
94
+ if (USE_CUDA)
95
+ enable_language(CUDA)
96
+ if(${CUDA_VERSION} VERSION_LESS 11.0)
97
+ message(FATAL_ERROR "CUDA version must be at least 11.0!")
98
+ endif()
99
+ if(DEFINED GPU_COMPUTE_VER)
100
+ compute_cmake_cuda_archs("${GPU_COMPUTE_VER}")
101
+ endif()
102
+ endif()
103
+ else()
104
+ message(STATUS "CUDA not found, compiling for CPU only")
105
+ set(USE_CUDA OFF)
106
+ endif()
107
+ endif()
108
+
109
+ if(NOT USE_CUDA)
110
+ message(STATUS "Compiling for CPU only")
111
+ else()
112
+ message(STATUS "NVCC ${CUDAToolkit_VERSION} found, compiling for CPU and GPU")
113
+ endif()
114
+ # Find required packages
115
+ # Attempt to find pybind11 automatically with Anaconda
116
+ find_package(pybind11 CONFIG QUIET HINTS $ENV{CONDA_PREFIX})
117
+ # 2. Fallback to system-wide CUDA if not found in Anaconda
118
+ if (NOT pybind11)
119
+ find_package(pybind11 CONFIG QUIET)
120
+ endif()
121
+ # If pybind11 is not found, use Python to find it
122
+ if(NOT pybind11_FOUND)
123
+ message(STATUS "pybind11 not found automatically, attempting to locate with Python")
124
+ execute_process(
125
+ COMMAND ${Python3_EXECUTABLE} -c "import pybind11; print(pybind11.get_cmake_dir())"
126
+ OUTPUT_VARIABLE pybind11_DIR
127
+ OUTPUT_STRIP_TRAILING_WHITESPACE
128
+ )
129
+ if(NOT EXISTS ${pybind11_DIR})
130
+ message(FATAL_ERROR "pybind11 not found, please install it using 'pip install pybind11'")
131
+ endif()
132
+ list(APPEND CMAKE_PREFIX_PATH ${pybind11_DIR})
133
+ find_package(pybind11 CONFIG REQUIRED)
134
+ endif()
135
+
136
+ find_path(GRAPHVIZ_INCLUDE_DIR NAMES graphviz/cgraph.h
137
+ HINTS ${_GRAPHVIZ_INCLUDE_DIR})
138
+ find_library(GRAPHVIZ_GVC_LIBRARY NAMES gvc
139
+ HINTS ${_GRAPHVIZ_LIBRARY_DIR})
140
+ find_library(GRAPHVIZ_CGRAPH_LIBRARY NAMES cgraph
141
+ HINTS ${_GRAPHVIZ_LIBRARY_DIR})
142
+ if(GRAPHVIZ_INCLUDE_DIR AND GRAPHVIZ_GVC_LIBRARY AND GRAPHVIZ_CGRAPH_LIBRARY)
143
+ set(GRAPHVIZ_FOUND TRUE)
144
+ else()
145
+ set(GRAPHVIZ_FOUND FALSE)
146
+ endif()
147
+
148
+
149
+ if(APPLE)
150
+ find_package(OpenMP)
151
+ if(NOT OpenMP_FOUND)
152
+ # Try again with extra path info; required for libomp 15+ from Homebrew
153
+ execute_process(COMMAND brew --prefix libomp
154
+ OUTPUT_VARIABLE HOMEBREW_LIBOMP_PREFIX
155
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
156
+ set(OpenMP_C_FLAGS
157
+ "-Xpreprocessor -fopenmp -I${HOMEBREW_LIBOMP_PREFIX}/include")
158
+ set(OpenMP_CXX_FLAGS
159
+ "-Xpreprocessor -fopenmp -I${HOMEBREW_LIBOMP_PREFIX}/include")
160
+ set(OpenMP_C_LIB_NAMES omp)
161
+ set(OpenMP_CXX_LIB_NAMES omp)
162
+ set(OpenMP_omp_LIBRARY ${HOMEBREW_LIBOMP_PREFIX}/lib/libomp.dylib)
163
+ find_package(OpenMP REQUIRED)
164
+ endif()
165
+ else()
166
+ find_package(OpenMP REQUIRED)
167
+ set(OpenMP_CXX_FLAGS ${OpenMP_CXX_FLAGS})
168
+ set(OpenMP_CXX_LIB_NAMES ${OpenMP_CXX_LIB_NAMES})
169
+ set(OpenMP_omp_LIBRARY ${OpenMP_omp_LIBRARY})
170
+ endif()
171
+
172
+ # Ensure OpenMP flags and directories are applied
173
+ if (OpenMP_FOUND)
174
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
175
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
176
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
177
+ endif()
178
+
179
+ # Add subdirectories for cpp and cuda
180
+ add_subdirectory(gbrl/src/cpp)
181
+
182
+ if (USE_CUDA AND NOT APPLE)
183
+ set(CMAKE_CUDA_STANDARD 14)
184
+ include_directories(${CUDAToolkit_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/gbrl/src/cuda)
185
+ add_definitions(-DUSE_CUDA)
186
+ add_subdirectory(gbrl/src/cuda)
187
+ set(CUDA_SOURCES $<TARGET_OBJECTS:cuda_gbrl_src>)
188
+
189
+ else()
190
+ set(CUDA_SOURCES "")
191
+ endif()
192
+
193
+ # Only include pybind11 in the binding file
194
+ set(PYBIND_SOURCES
195
+ gbrl/src/cpp/gbrl_binding.cpp
196
+ )
197
+
198
+ pybind11_add_module(gbrl_cpp MODULE ${PYBIND_SOURCES})
199
+ target_include_directories(gbrl_cpp PRIVATE ${Python3_INCLUDE_DIRS} ${pybind11_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/gbrl/src/cpp)
200
+ target_compile_definitions(gbrl_cpp PRIVATE MODULE_NAME="gbrl_cpp")
201
+ target_link_libraries(gbrl_cpp PRIVATE ${Python3_LIBRARIES})
202
+ target_link_libraries(gbrl_cpp PRIVATE gbrl_cpp_src)
203
+
204
+ if (USE_CUDA)
205
+ target_link_libraries(gbrl_cpp PRIVATE cuda_gbrl_src)
206
+ endif()
207
+ # Platform-specific settings and linking
208
+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
209
+
210
+ target_link_libraries(gbrl_cpp PRIVATE OpenMP::OpenMP_CXX)
211
+ if (USE_CUDA)
212
+ target_link_libraries(gbrl_cpp PRIVATE CUDA::cudart)
213
+ endif()
214
+ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
215
+ find_package(LLVM REQUIRED)
216
+ include_directories(${LLVM_INCLUDE_DIRS})
217
+ link_directories(${LLVM_LIBRARY_DIRS})
218
+ target_link_libraries(gbrl_cpp PRIVATE ${LLVM_LIBRARIES} OpenMP::OpenMP_CXX)
219
+ elseif (WIN32)
220
+ target_link_libraries(gbrl_cpp PRIVATE OpenMP::OpenMP_CXX)
221
+ if (USE_CUDA)
222
+ set(cuda_lib_path "${CUDAToolkit_ROOT_DIR}/lib/x64")
223
+ message(STATUS "cuda_lib_path: ${cuda_lib_path}")
224
+ target_link_libraries(gbrl_cpp PRIVATE CUDA::cudart)
225
+ endif()
226
+ endif()
227
+
228
+ # Link Graphviz libraries if available
229
+ if (GRAPHVIZ_FOUND)
230
+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
231
+ # target_link_libraries(gbrl_cpp PRIVATE gvc cgraph)
232
+ target_link_libraries(gbrl_cpp PRIVATE ${GRAPHVIZ_GVC_LIBRARY} ${GRAPHVIZ_CGRAPH_LIBRARY})
233
+ elseif (WIN32)
234
+ target_link_libraries(gbrl_cpp PRIVATE gvc.lib cgraph.lib)
235
+ endif()
236
+ endif()
@@ -1,5 +1,7 @@
1
- NVIDIA License
1
+ Copyright (c) 2024, NVIDIA Corporation. All rights reserved.
2
2
 
3
+
4
+ Nvidia Source Code License-NC
3
5
  1. Definitions
4
6
 
5
7
  “Licensor” means any person or entity that distributes its Work.
@@ -0,0 +1,347 @@
1
+ GBRL uses the following third-party libraries:
2
+
3
+ 1. NumPy
4
+ - Repository: https://github.com/numpy/numpy
5
+ - License:
6
+ Copyright (c) 2005-2024, NumPy Developers.
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions are
11
+ met:
12
+
13
+ * Redistributions of source code must retain the above copyright
14
+ notice, this list of conditions and the following disclaimer.
15
+
16
+ * Redistributions in binary form must reproduce the above
17
+ copyright notice, this list of conditions and the following
18
+ disclaimer in the documentation and/or other materials provided
19
+ with the distribution.
20
+
21
+ * Neither the name of the NumPy Developers nor the names of any
22
+ contributors may be used to endorse or promote products derived
23
+ from this software without specific prior written permission.
24
+
25
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+
37
+ 2. PyTorch
38
+ - Repository: https://github.com/pytorch/pytorch
39
+ - License:
40
+ From PyTorch:
41
+
42
+ Copyright (c) 2016- Facebook, Inc (Adam Paszke)
43
+ Copyright (c) 2014- Facebook, Inc (Soumith Chintala)
44
+ Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert)
45
+ Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu)
46
+ Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu)
47
+ Copyright (c) 2011-2013 NYU (Clement Farabet)
48
+ Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston)
49
+ Copyright (c) 2006 Idiap Research Institute (Samy Bengio)
50
+ Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz)
51
+
52
+ From Caffe2:
53
+
54
+ Copyright (c) 2016-present, Facebook Inc. All rights reserved.
55
+
56
+ All contributions by Facebook:
57
+ Copyright (c) 2016 Facebook Inc.
58
+
59
+ All contributions by Google:
60
+ Copyright (c) 2015 Google Inc.
61
+ All rights reserved.
62
+
63
+ All contributions by Yangqing Jia:
64
+ Copyright (c) 2015 Yangqing Jia
65
+ All rights reserved.
66
+
67
+ All contributions by Kakao Brain:
68
+ Copyright 2019-2020 Kakao Brain
69
+
70
+ All contributions by Cruise LLC:
71
+ Copyright (c) 2022 Cruise LLC.
72
+ All rights reserved.
73
+
74
+ All contributions from Caffe:
75
+ Copyright(c) 2013, 2014, 2015, the respective contributors
76
+ All rights reserved.
77
+
78
+ All other contributions:
79
+ Copyright(c) 2015, 2016 the respective contributors
80
+ All rights reserved.
81
+
82
+ Caffe2 uses a copyright model similar to Caffe: each contributor holds
83
+ copyright over their contributions to Caffe2. The project versioning records
84
+ all such contribution and copyright details. If a contributor wants to further
85
+ mark their specific copyright on a particular contribution, they should
86
+ indicate their copyright solely in the commit message of the change when it is
87
+ committed.
88
+
89
+ All rights reserved.
90
+
91
+ Redistribution and use in source and binary forms, with or without
92
+ modification, are permitted provided that the following conditions are met:
93
+
94
+ 1. Redistributions of source code must retain the above copyright
95
+ notice, this list of conditions and the following disclaimer.
96
+
97
+ 2. Redistributions in binary form must reproduce the above copyright
98
+ notice, this list of conditions and the following disclaimer in the
99
+ documentation and/or other materials provided with the distribution.
100
+
101
+ 3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC Laboratories America
102
+ and IDIAP Research Institute nor the names of its contributors may be
103
+ used to endorse or promote products derived from this software without
104
+ specific prior written permission.
105
+
106
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
107
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
108
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
109
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
110
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
111
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
112
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
113
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
114
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
115
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
116
+ POSSIBILITY OF SUCH DAMAGE.
117
+
118
+ 3. pybind11
119
+ - Repository: https://github.com/pybind/pybind11
120
+ - License:
121
+ Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
122
+
123
+ Redistribution and use in source and binary forms, with or without
124
+ modification, are permitted provided that the following conditions are met:
125
+
126
+ 1. Redistributions of source code must retain the above copyright notice, this
127
+ list of conditions and the following disclaimer.
128
+
129
+ 2. Redistributions in binary form must reproduce the above copyright notice,
130
+ this list of conditions and the following disclaimer in the documentation
131
+ and/or other materials provided with the distribution.
132
+
133
+ 3. Neither the name of the copyright holder nor the names of its contributors
134
+ may be used to endorse or promote products derived from this software
135
+ without specific prior written permission.
136
+
137
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
138
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
139
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
140
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
141
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
142
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
143
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
144
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
145
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
146
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
147
+
148
+ Please also refer to the file .github/CONTRIBUTING.md, which clarifies licensing of
149
+ external contributions to this project including patches, pull requests, etc.
150
+
151
+ 4. scikit-learn
152
+ - Repository: https://github.com/scikit-learn/scikit-learn
153
+ - License:
154
+ BSD 3-Clause License
155
+
156
+ Copyright (c) 2007-2024 The scikit-learn developers.
157
+ All rights reserved.
158
+
159
+ Redistribution and use in source and binary forms, with or without
160
+ modification, are permitted provided that the following conditions are met:
161
+
162
+ * Redistributions of source code must retain the above copyright notice, this
163
+ list of conditions and the following disclaimer.
164
+
165
+ * Redistributions in binary form must reproduce the above copyright notice,
166
+ this list of conditions and the following disclaimer in the documentation
167
+ and/or other materials provided with the distribution.
168
+
169
+ * Neither the name of the copyright holder nor the names of its
170
+ contributors may be used to endorse or promote products derived from
171
+ this software without specific prior written permission.
172
+
173
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
174
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
175
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
176
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
177
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
178
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
179
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
180
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
181
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
182
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
183
+
184
+
185
+ 5. scipy
186
+ - Repository: https://github.com/scipy/scipy
187
+ - License:
188
+ Copyright (c) 2001-2002 Enthought, Inc. 2003-2024, SciPy Developers.
189
+ All rights reserved.
190
+
191
+ Redistribution and use in source and binary forms, with or without
192
+ modification, are permitted provided that the following conditions
193
+ are met:
194
+
195
+ 1. Redistributions of source code must retain the above copyright
196
+ notice, this list of conditions and the following disclaimer.
197
+
198
+ 2. Redistributions in binary form must reproduce the above
199
+ copyright notice, this list of conditions and the following
200
+ disclaimer in the documentation and/or other materials provided
201
+ with the distribution.
202
+
203
+ 3. Neither the name of the copyright holder nor the names of its
204
+ contributors may be used to endorse or promote products derived
205
+ from this software without specific prior written permission.
206
+
207
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
208
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
209
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
210
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
211
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
212
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
213
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
214
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
215
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
216
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
217
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
218
+
219
+ 6. shap
220
+ - Repository: https://github.com/shap/shap
221
+ - License:
222
+ The MIT License (MIT)
223
+
224
+ Copyright (c) 2018 Scott Lundberg
225
+
226
+ Permission is hereby granted, free of charge, to any person obtaining a copy
227
+ of this software and associated documentation files (the "Software"), to deal
228
+ in the Software without restriction, including without limitation the rights
229
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
230
+ copies of the Software, and to permit persons to whom the Software is
231
+ furnished to do so, subject to the following conditions:
232
+
233
+ The above copyright notice and this permission notice shall be included in all
234
+ copies or substantial portions of the Software.
235
+
236
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
237
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
238
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
239
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
240
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
241
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
242
+ SOFTWARE.
243
+
244
+
245
+ 7. matplotlib
246
+ - Repository: https://github.com/matplotlib/matplotlib
247
+ - License:
248
+ License agreement for matplotlib versions 1.3.0 and later
249
+ =========================================================
250
+
251
+ 1. This LICENSE AGREEMENT is between the Matplotlib Development Team
252
+ ("MDT"), and the Individual or Organization ("Licensee") accessing and
253
+ otherwise using matplotlib software in source or binary form and its
254
+ associated documentation.
255
+
256
+ 2. Subject to the terms and conditions of this License Agreement, MDT
257
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide license
258
+ to reproduce, analyze, test, perform and/or display publicly, prepare
259
+ derivative works, distribute, and otherwise use matplotlib
260
+ alone or in any derivative version, provided, however, that MDT's
261
+ License Agreement and MDT's notice of copyright, i.e., "Copyright (c)
262
+ 2012- Matplotlib Development Team; All Rights Reserved" are retained in
263
+ matplotlib alone or in any derivative version prepared by
264
+ Licensee.
265
+
266
+ 3. In the event Licensee prepares a derivative work that is based on or
267
+ incorporates matplotlib or any part thereof, and wants to
268
+ make the derivative work available to others as provided herein, then
269
+ Licensee hereby agrees to include in any such work a brief summary of
270
+ the changes made to matplotlib .
271
+
272
+ 4. MDT is making matplotlib available to Licensee on an "AS
273
+ IS" basis. MDT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
274
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, MDT MAKES NO AND
275
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
276
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB
277
+ WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
278
+
279
+ 5. MDT SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB
280
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
281
+ LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING
282
+ MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
283
+ THE POSSIBILITY THEREOF.
284
+
285
+ 6. This License Agreement will automatically terminate upon a material
286
+ breach of its terms and conditions.
287
+
288
+ 7. Nothing in this License Agreement shall be deemed to create any
289
+ relationship of agency, partnership, or joint venture between MDT and
290
+ Licensee. This License Agreement does not grant permission to use MDT
291
+ trademarks or trade name in a trademark sense to endorse or promote
292
+ products or services of Licensee, or any third party.
293
+
294
+ 8. By copying, installing or otherwise using matplotlib ,
295
+ Licensee agrees to be bound by the terms and conditions of this License
296
+ Agreement.
297
+
298
+ License agreement for matplotlib versions prior to 1.3.0
299
+ ========================================================
300
+
301
+ 1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the
302
+ Individual or Organization ("Licensee") accessing and otherwise using
303
+ matplotlib software in source or binary form and its associated
304
+ documentation.
305
+
306
+ 2. Subject to the terms and conditions of this License Agreement, JDH
307
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide license
308
+ to reproduce, analyze, test, perform and/or display publicly, prepare
309
+ derivative works, distribute, and otherwise use matplotlib
310
+ alone or in any derivative version, provided, however, that JDH's
311
+ License Agreement and JDH's notice of copyright, i.e., "Copyright (c)
312
+ 2002-2011 John D. Hunter; All Rights Reserved" are retained in
313
+ matplotlib alone or in any derivative version prepared by
314
+ Licensee.
315
+
316
+ 3. In the event Licensee prepares a derivative work that is based on or
317
+ incorporates matplotlib or any part thereof, and wants to
318
+ make the derivative work available to others as provided herein, then
319
+ Licensee hereby agrees to include in any such work a brief summary of
320
+ the changes made to matplotlib.
321
+
322
+ 4. JDH is making matplotlib available to Licensee on an "AS
323
+ IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
324
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND
325
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
326
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB
327
+ WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
328
+
329
+ 5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB
330
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
331
+ LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING
332
+ MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
333
+ THE POSSIBILITY THEREOF.
334
+
335
+ 6. This License Agreement will automatically terminate upon a material
336
+ breach of its terms and conditions.
337
+
338
+ 7. Nothing in this License Agreement shall be deemed to create any
339
+ relationship of agency, partnership, or joint venture between JDH and
340
+ Licensee. This License Agreement does not grant permission to use JDH
341
+ trademarks or trade name in a trademark sense to endorse or promote
342
+ products or services of Licensee, or any third party.
343
+
344
+ 8. By copying, installing or otherwise using matplotlib,
345
+ Licensee agrees to be bound by the terms and conditions of this License
346
+ Agreement.
347
+
@@ -0,0 +1,10 @@
1
+ include gbrl/src/cuda/*.cu
2
+ include gbrl/src/cuda/*.h
3
+ include gbrl/src/cuda/CMakeLists.txt
4
+ include gbrl/src/cpp/*.cpp
5
+ include gbrl/src/cpp/*.h
6
+ include gbrl/src/cpp/CMakeLists.txt
7
+ include README.md
8
+ include LICENSE
9
+ include LICENSES.txt
10
+ include CMakeLists.txt