编写自定义person类_编写一个自定义异常类

编写自定义person类_编写一个自定义异常类新建一个类,用来管理opencl整个流程,设定为单例模式,直接上主要代码:.h文件#ifndefCLMANAGER_H_#defineCLMANAGER_H_#includeCL/cl.hpp#includecs

编写自定义person类_编写一个自定义异常类"

新建一个类,用来管理opencl整个流程,设定为单例模式,直接上主要代码:

.h 文件

#ifndef CLMANAGER_H_
#define CLMANAGER_H_

#include <CL/cl.hpp>

#include <cstdio>
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <string>
#include <iterator>
#include <utility>

enum DEVICETYPE
{
	NVIDIA,
	AMD,
        INTEL,
	NONE,
};

//判断是否有错误
inline bool checkErr(cl_int err, const char * name)
{
	if (err != CL_SUCCESS) 
	{
		std::cerr << "ERROR: " << name << " (" << err << ")" << std::endl;
		return false;
		//exit(EXIT_FAILURE);
	}
	return true;
}

class COCLManager
{
public:
	COCLManager();
	~COCLManager();
        //初始化运行环境
	bool InitCL();
        //读取*.cl kernel文件 
	cl::Kernel BuildFromSource(const std::string &kernel_path, const std::string &kernel_name, bool &isSuccess);
        //单例
	static COCLManager*GetInstance()
	{
		if ( !instance_ )
		{
			instance_ = new COCLManager;
		}
		return instance_;
	}
	bool HasGPU() { return hasGPU_; }
	DEVICETYPE DeviceType(){ return dt_; }
	cl::Context getContex();
	cl::CommandQueue getQueue();
private:
	static COCLManager*instance_;
	cl::Platform platform_;
	std::vector<cl::Device> devices_;
        cl::Device device_;
	cl::Context context_;
	cl::CommandQueue queue_;
	bool hasGPU_ = false;
	DEVICETYPE dt_ = NONE;
	cl::Program::Binaries loadBinaries(const std::string &binPath);
	void saveBinaries(const std::string &kernel_str, const std::string &binPath);
};

#endif

cpp文件

主要代码段:

初始化opencl环境 bool InitCL()


今天的文章编写自定义person类_编写一个自定义异常类分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64752.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注