当前位置: 首页>>代码示例>>C++>>正文


C++ device::create_buffer方法代码示例

本文整理汇总了C++中device::create_buffer方法的典型用法代码示例。如果您正苦于以下问题:C++ device::create_buffer方法的具体用法?C++ device::create_buffer怎么用?C++ device::create_buffer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在device的用法示例。


在下文中一共展示了device::create_buffer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

	ibuffer::ibuffer(const device &device, const vk::BufferUsageFlags flags, const void *data, const size_t size)
		: device_(device), size_(size)
	{
		handle_ = device.create_buffer(
			vk::BufferCreateInfo()
				.size(static_cast<vk::DeviceSize>(size))
				.usage(flags));

		gpumem_ = gpu_memory(
			device,
			device.get_buffer_memory_requirements(handle_),
			vk::MemoryPropertyFlagBits::eHostVisible,
			data);

		device.bind_buffer_memory(handle_, gpumem_.handle(), 0);
	}
开发者ID:PixelSpew,项目名称:nIceVulkan,代码行数:16,代码来源:buffer.cpp

示例2: hpxcl_single_initialize

static void hpxcl_single_initialize( hpx::naming::id_type node_id,
                                     size_t vector_size)
{

    // Query all devices on local node
    std::vector<device> devices = get_devices( node_id,
                                  CL_DEVICE_TYPE_GPU,
                                  "OpenCL 1.1" ).get();

    /*
        // print devices
        hpx::cout << "Devices:" << hpx::endl;
        for(cl_uint i = 0; i < devices.size(); i++)
        {

            device cldevice = devices[i];

            // Query name
            std::string device_name = device::device_info_to_string(
                                        cldevice.get_device_info(CL_DEVICE_NAME));
            std::string device_vendor = device::device_info_to_string(
                                        cldevice.get_device_info(CL_DEVICE_VENDOR));

            hpx::cout << i << ": " << device_name << " (" << device_vendor << ")"
                      << hpx::endl;

        }

        // Lets you choose a device
        size_t device_num;
        hpx::cout << "Choose device: " << hpx::endl;
        std::cin >> device_num;
        if(device_num < 0 || device_num >= devices.size())
            exit(0);

        // Select a device
        hpxcl_single_device = devices[device_num];
    */

    size_t device_id = 0;
    // print device
    hpx::cout << "Device:" << hpx::endl;
    {

        device cldevice = devices[device_id];

        // Query name
        std::string device_name = device::device_info_to_string(
                                      cldevice.get_device_info(CL_DEVICE_NAME));
        std::string device_vendor = device::device_info_to_string(
                                        cldevice.get_device_info(CL_DEVICE_VENDOR));

        hpx::cout << "    " << device_name << " (" << device_vendor << ")"
                  << hpx::endl;

    }

    // Select a device
    hpxcl_single_device = devices[device_id];

    // Create program
    hpxcl_single_program = hpxcl_single_device.create_program_with_source(
                               gpu_code);

    // Build program
    hpxcl_single_program.build();

    // Create kernels
    hpxcl_single_log_kernel = hpxcl_single_program.create_kernel("logn");
    hpxcl_single_exp_kernel = hpxcl_single_program.create_kernel("expn");
    hpxcl_single_mul_kernel = hpxcl_single_program.create_kernel("mul");
    hpxcl_single_add_kernel = hpxcl_single_program.create_kernel("add");
    hpxcl_single_dbl_kernel = hpxcl_single_program.create_kernel("dbl");

    // Generate buffers
    hpxcl_single_buffer_a = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_ONLY,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_b = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_ONLY,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_c = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_ONLY,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_m = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_WRITE,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_n = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_WRITE,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_o = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_WRITE,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_p = hpxcl_single_device.create_buffer(
                                CL_MEM_READ_WRITE,
                                vector_size * sizeof(float));
    hpxcl_single_buffer_z = hpxcl_single_device.create_buffer(
                                CL_MEM_WRITE_ONLY,
                                vector_size * sizeof(float));

//.........这里部分代码省略.........
开发者ID:hapoo,项目名称:hpxcl,代码行数:101,代码来源:hpxcl_single.hpp


注:本文中的device::create_buffer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。