/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include #include #include #include #include #include "ITraceActivity.h" namespace KINETO_NAMESPACE { class CuptiActivityBuffer { public: explicit CuptiActivityBuffer(size_t size) : size_(size) { buf_.reserve(size); } CuptiActivityBuffer() = delete; CuptiActivityBuffer& operator=(const CuptiActivityBuffer&) = delete; CuptiActivityBuffer(CuptiActivityBuffer&&) = default; CuptiActivityBuffer& operator=(CuptiActivityBuffer&&) = default; size_t size() const { return size_; } void setSize(size_t size) { assert(size <= buf_.capacity()); size_ = size; } uint8_t* data() { return buf_.data(); } private: std::vector buf_; size_t size_; std::vector> wrappers_; }; using CuptiActivityBufferMap = std::map>; } // namespace KINETO_NAMESPACE