Skip to content

Commit

Permalink
Added Tensor data structures and some associated tests
Browse files Browse the repository at this point in the history
  • Loading branch information
CPestka committed Apr 17, 2024
1 parent f3bd4d1 commit 9796f67
Show file tree
Hide file tree
Showing 12 changed files with 2,126 additions and 9 deletions.
4 changes: 3 additions & 1 deletion src/runtime/local/datastructures/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@ add_library(DataStructures
IAllocationDescriptor.h
MetaDataObject.h
MetaDataObject.cpp
ChunkedTensor.cpp
ContiguousTensor.cpp
ValueTypeUtils.cpp)

target_link_libraries(DataStructures PUBLIC Proto)
if(USE_CUDA AND CMAKE_CUDA_COMPILER)
target_include_directories(DataStructures PUBLIC ${CUDAToolkit_INCLUDE_DIRS})
target_link_libraries(DataStructures PUBLIC CUDA::cudart)
endif()
endif()
44 changes: 44 additions & 0 deletions src/runtime/local/datastructures/ChunkedTensor.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright 2021 The DAPHNE Consortium
*
* 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.
*/

#include "ChunkedTensor.h"

#include <spdlog/spdlog.h>

This comment has been minimized.

Copy link
@MarcusParadies

MarcusParadies Apr 18, 2024

Contributor

is this include necessary?


template<typename ValueType>
void ChunkedTensor<ValueType>::printValue(std::ostream& os, ValueType val) const {
os << val;
}

// Convert to an integer to print uint8_t values as numbers
// even if they fall into the range of special ASCII characters.
template<>
[[maybe_unused]] void ChunkedTensor<uint8_t>::printValue(std::ostream& os, uint8_t val) const {
os << static_cast<uint32_t>(val);
}

template<>
[[maybe_unused]] void ChunkedTensor<int8_t>::printValue(std::ostream& os, int8_t val) const {
os << static_cast<int32_t>(val);
}

// explicitly instantiate to satisfy linker
template class ChunkedTensor<double>;
template class ChunkedTensor<float>;
template class ChunkedTensor<int>;
template class ChunkedTensor<long>;
template class ChunkedTensor<unsigned int>;
template class ChunkedTensor<unsigned long>;
Loading

0 comments on commit 9796f67

Please sign in to comment.