Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ set(CPP_SOURCES
src/datatypes/matrix.cpp
src/datatypes/tensor.cpp
src/datatypes/vector.cpp
src/Operation.cpp
src/Tensor.cpp
include/Node.h
src/Node.cpp
)

# List of CUDA source files
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
32 changes: 32 additions & 0 deletions include/Node.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//
// Created by servant-of-scietia on 10/14/24.
//

#ifndef NODE_H
#define NODE_H

#include <utility>

#include "Tensor.h"

namespace brainet
{
class Node
{
std::vector<std::shared_ptr<Tensor>> m_tensorIn, m_tensorOut;
std::string m_name;

public:
explicit Node(std::string name = "Node");

[[nodiscard]] std::vector<std::shared_ptr<Tensor>> getTensorIn() const;
[[nodiscard]] std::vector<std::shared_ptr<Tensor>> getTensorOut() const;
[[nodiscard]] std::string getName() const;

void setTensorIn(const std::vector<std::shared_ptr<Tensor>> &tensorIn);
void setTensorOut(const std::vector<std::shared_ptr<Tensor>> &tensorOut);
void setName(const std::string &name);
};
} // brainet

#endif //NODE_H
21 changes: 21 additions & 0 deletions include/Operation.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//
// Created by servant-of-scietia on 10/14/24.
//

#ifndef OPERATION_H
#define OPERATION_H

#include "Node.h"

namespace brainet
{
class Operation : public Node
{
public:
explicit Operation(const std::string &name = "Operation");
}
} // brainet



#endif //OPERATION_H
38 changes: 38 additions & 0 deletions include/Tensor.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//
// Created by servant-of-scietia on 10/13/24.
//

#ifndef TENSOR_H
#define TENSOR_H

#include "dependencies.h"
#include "config.h"
#include "primitives/enum.h"

namespace brainet
{
class Tensor
{
std::vector<std::uint64_t> m_dimensions, m_strides;
bool m_isVirtual;
std::string m_name;
dtype_t m_dataType;

public:
Tensor(const std::vector<std::uint64_t> &dimensions, const std::vector<std::uint64_t> &strides, const dtype_t &dataType, const std::string &name, const bool &isVirtual = false);

[[nodiscard]] std::vector<std::uint64_t> getDimensions() const;
[[nodiscard]] std::vector<std::uint64_t> getStrides() const;
[[nodiscard]] dtype_t getDataType() const;
[[nodiscard]] std::string getName() const;
[[nodiscard]] bool isVirtual() const;

void setDimensions(const std::vector<std::uint64_t> &dimensions);
void setStrides(const std::vector<std::uint64_t> &strides);
void setDataType(const dtype_t &dataType);
void setName(const std::string &name);
void setIsVirtual(const bool &isVirtual);
};
} // brainet

#endif //TENSOR_H
9 changes: 9 additions & 0 deletions include/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
//
// Created by servant-of-scietia on 9/28/24.
//

#ifndef CONFIG_H
#define CONFIG_H


#endif //CONFIG_H
File renamed without changes.
22 changes: 0 additions & 22 deletions include/primitives/DataTypes.h

This file was deleted.

35 changes: 0 additions & 35 deletions include/primitives/Tensor.h

This file was deleted.

25 changes: 25 additions & 0 deletions include/primitives/enum.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//
// Created by servant-of-scietia on 10/13/24.
//

#ifndef ENUM_H
#define ENUM_H

namespace brainet
{
enum dtype_t
{
FLOAT32,
FLOAT64,
INT8,
INT16,
INT32,
INT64,
UINT8,
UINT16,
UINT32,
UINT64
};
} // namespace brainet

#endif //ENUM_H
44 changes: 44 additions & 0 deletions src/Node.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//
// Created by servant-of-scietia on 10/14/24.
//

#include "Node.h"

#include <utility>

namespace brainet
{
Node::Node(std::string name) : m_name(std::move(name))
{
}

std::vector<std::shared_ptr<Tensor>> Node::getTensorIn() const
{
return m_tensorIn;
}

std::vector<std::shared_ptr<Tensor>> Node::getTensorOut() const
{
return m_tensorOut;
}

std::string Node::getName() const
{
return m_name;
}

void Node::setTensorIn(const std::vector<std::shared_ptr<Tensor>> &tensorIn)
{
m_tensorIn = tensorIn;
}

void Node::setTensorOut(const std::vector<std::shared_ptr<Tensor>> &tensorOut)
{
m_tensorOut = tensorOut;
}

void Node::setName(const std::string &name)
{
m_name = name;
}
} // brainet
12 changes: 12 additions & 0 deletions src/Operation.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
//
// Created by servant-of-scietia on 10/14/24.
//

#include "Operation.h"

namespace brainet
{
Operation::Operation(const std::string &name) : Node(name)
{
}
} // brainet
92 changes: 48 additions & 44 deletions src/Tensor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,59 +2,63 @@
// Created by servant-of-scietia on 10/13/24.
//

#include "primitives/Tensor.h"
#include "Tensor.h"

Tensor::Tensor(std::vector<std::uint64_t> const &dimensions, std::vector<std::uint64_t> const &strides, dtype_t dataType, std::string const &name, bool isVirtual)
: m_dimensions(dimensions), m_strides(strides), m_dataType(dataType), m_name(name), m_isVirtual(isVirtual)
namespace brainet
{
}
Tensor::Tensor(const std::vector<std::uint64_t>& dimensions, const std::vector<std::uint64_t>& strides, const dtype_t& dataType, const std::string& name, const bool& isVirtual)
: m_dimensions(dimensions), m_strides(strides), m_dataType(dataType), m_name(name), m_isVirtual(isVirtual)
{
}

std::vector<std::uint64_t> Tensor::getDimensions() const
{
return m_dimensions;
}
std::vector<std::uint64_t> Tensor::getDimensions() const
{
return m_dimensions;
}

std::vector<std::uint64_t> Tensor::getStrides() const
{
return m_strides;
}
std::vector<std::uint64_t> Tensor::getStrides() const
{
return m_strides;
}

dtype_t Tensor::getDataType() const
{
return m_dataType;
}
dtype_t Tensor::getDataType() const
{
return m_dataType;
}

std::string Tensor::getName() const
{
return m_name;
}
std::string Tensor::getName() const
{
return m_name;
}

bool Tensor::isVirtual() const
{
return m_isVirtual;
}
bool Tensor::isVirtual() const
{
return m_isVirtual;
}

void Tensor::setDimensions(std::vector<std::uint64_t> const &dimensions)
{
m_dimensions = dimensions;
}
void Tensor::setDimensions(const std::vector<std::uint64_t>& dimensions)
{
m_dimensions = dimensions;
}

void Tensor::setStrides(std::vector<std::uint64_t> const &strides)
{
m_strides = strides;
}
void Tensor::setStrides(const std::vector<std::uint64_t>& strides)
{
m_strides = strides;
}

void Tensor::setDataType(dtype_t dataType)
{
m_dataType = dataType;
}
void Tensor::setDataType(const dtype_t& dataType)
{
m_dataType = dataType;
}

void Tensor::setName(std::string const &name)
{
m_name = name;
}
void Tensor::setName(const std::string& name)
{
m_name = name;
}

void Tensor::setVirtual(bool isVirtual)
{
m_isVirtual = isVirtual;
}
void Tensor::setIsVirtual(const bool& isVirtual)
{
m_isVirtual = isVirtual;
}

} // brainet