MNN/codegen/opencl/OpenCLTarget.hpp

29 lines
1.1 KiB
C++
Raw Normal View History

2023-02-15 10:30:27 +08:00
//
// OpenCLTarget.hpp
// MNN
//
// Created by MNN on 2022/11/14.
// Copyright © 2018, Alibaba Group Holding Limited
//
#include "../SourceModule.hpp"
namespace MNN {
class OpenCLTarget : public Target {
public:
2023-07-18 09:36:26 +08:00
OpenCLTarget(const BackendConfig::PrecisionMode precision) : Target(precision) {}
2023-02-15 10:30:27 +08:00
~OpenCLTarget() {}
2023-07-18 09:36:26 +08:00
std::string codegen(std::vector<std::string>& inputs, const Command* cmd, std::string& inpName) override;
2023-02-15 10:30:27 +08:00
private:
std::string type() override;
std::string macro() override;
std::string number(float val) override;
2023-07-18 09:36:26 +08:00
std::string load(const std::string& base, const std::string& offset, const Command* cmd, std::string& inpName) override;
std::string loadscalar(const std::string& base, std::string& inpName) override;
2023-02-15 10:30:27 +08:00
std::string store(const std::string base, const std::string& offset, const std::string& data) override;
2023-07-18 09:36:26 +08:00
std::string proto(const std::string& name, const std::vector<std::string>& inputs, const std::vector<std::string>& outputs, bool hasSingleConvertRaster = false) override;
2023-02-15 10:30:27 +08:00
template <typename T>
2023-08-21 14:51:54 +08:00
std::string numval(T t) { return "((FLOAT4)" + std::to_string(t) + ")"; }
2023-02-15 10:30:27 +08:00
};
}