mirror of
https://github.com/lordmathis/CUDANet.git
synced 2025-12-22 14:24:22 +00:00
Refactor Backend and Layer interfaces
This commit is contained in:
@@ -1,29 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "backend/backend.hpp"
|
||||
#include "backend/tensor.hpp"
|
||||
#include "backend.hpp"
|
||||
#include "tensor.hpp"
|
||||
|
||||
namespace CUDANet::Backend {
|
||||
|
||||
class CUDABackend : public IBackend {
|
||||
class CUDA : public Backend {
|
||||
public:
|
||||
// Memory management
|
||||
void* allocate(size_t bytes) override;
|
||||
void deallocate(void* ptr) override;
|
||||
|
||||
// Tensor ops
|
||||
void print(const CUDANet::Backend::Tensor &input) override;
|
||||
void clear(CUDANet::Backend::Tensor &input) override;
|
||||
void sum(const CUDANet::Backend::Tensor &input, CUDANet::Backend::Tensor &sum) override;
|
||||
void max(const CUDANet::Backend::Tensor &input, CUDANet::Backend::Tensor &max) override;
|
||||
void print(const CUDANet::Tensor &input) override;
|
||||
void clear(CUDANet::Tensor &input) override;
|
||||
void sum(const CUDANet::Tensor &input, CUDANet::Tensor &sum) override;
|
||||
void max(const CUDANet::Tensor &input, CUDANet::Tensor &max) override;
|
||||
|
||||
// Layer ops
|
||||
void relu(CUDANet::Backend::Tensor &tensor) override;
|
||||
void sigmoid(CUDANet::Backend::Tensor &tensor) override;
|
||||
void softmax(CUDANet::Backend::Tensor &tensor, CUDANet::Backend::Tensor &temp_max, CUDANet::Backend::Tensor &temp_sum) override;
|
||||
|
||||
private:
|
||||
static constexpr int BLOCK_SIZE = 256;
|
||||
void relu(CUDANet::Tensor &tensor) override;
|
||||
void sigmoid(CUDANet::Tensor &tensor) override;
|
||||
void softmax(CUDANet::Tensor &tensor, CUDANet::Tensor &temp_max, CUDANet::Tensor &temp_sum) override;
|
||||
};
|
||||
|
||||
} // namespace CUDANet::Backend
|
||||
Reference in New Issue
Block a user