123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #ifndef CNSTREAM_ALLOCATOR_HPP_
- #define CNSTREAM_ALLOCATOR_HPP_
- #include <atomic>
- #include <memory>
- #include <new>
- #include "cnstream_common.hpp"
- #include "cnstream_logging.hpp"
- #include "util/cnstream_queue.hpp"
- namespace cnstream {
- class IDataDeallocator {
- public:
-
- virtual ~IDataDeallocator() {}
- };
- class MluDeviceGuard : public NonCopyable {
- public:
-
- explicit MluDeviceGuard(int device_id);
-
- ~MluDeviceGuard();
- private:
- int device_id_ = 0;
- };
- std::shared_ptr<void> cnCpuMemAlloc(size_t size);
- std::shared_ptr<void> cnMluMemAlloc(size_t size, int device_id);
- }
- #endif
|