Poplar and PopLibs
Executable.hpp
1// Copyright (c) 2019 Graphcore Ltd. All rights reserved.
2
3#ifndef poplar_Executable_hpp
4#define poplar_Executable_hpp
5
6#include <memory>
7
8namespace poplar {
9
10namespace core {
11class Executable;
12}
13
18public:
20
21 Executable();
22 Executable(Executable &&other) noexcept;
23 Executable &operator=(Executable &&other) noexcept;
24
35 void serialize(std::ostream &out) const;
36
43 static Executable deserialize(std::istream &in, bool checkPackageHash = true);
44
57 static Executable deserialize(std::unique_ptr<std::istream> in,
58 bool checkPackageHash = true);
59
60 // Implementation
61 explicit Executable(std::unique_ptr<core::Executable> impl);
62 friend class Engine;
63
64 const core::Executable &getImpl() const { return *impl; }
65
66private:
67 std::unique_ptr<core::Executable> impl;
68};
69
70} // namespace poplar
71
72#endif // poplar_Executable_hpp
A graph compute engine.
Definition: Engine.hpp:390
An instance of poplar::Executable contains all of the information needed to run a program on an IPU d...
Definition: Executable.hpp:17
void serialize(std::ostream &out) const
Serialize an executable to a stream.
static Executable deserialize(std::unique_ptr< std::istream > in, bool checkPackageHash=true)
Load an executable from a stream.
static Executable deserialize(std::istream &in, bool checkPackageHash=true)
Load an executable from a stream.
Poplar classes and functions.
Definition: ArrayRef.hpp:14