FLANN GPU 版本测试

本文档介绍了如何在CUDA 10.2环境下测试FLANN(Fast Library for Approximate Nearest Neighbors)的GPU版本。内容包括FLANN的下载与编译,特别是如何支持多线程,以及从C++使用FLANN的指南,涉及flann::Index接口和buildIndex方法。参考了官方指导文档和相关论坛讨论。
摘要由CSDN通过智能技术生成

转载请注明出处!

CUDA 版本10.2

#define FLANN_USE_CUDA
#include <flann/flann.hpp>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include<iostream>
#include <fstream>

#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <vector_functions.h>
//
void main()
{
    int tmpDataSize = 1000;
    float* tmpData(new float[tmpDataSize * 3]);
    float* tmpDataq(new float[tmpDataSize * 3]);
    int tmpNN = 4;

    for (int iPt = 0; iPt < tmpDataSize; ++iPt)
    {
        tmpData[iPt * 3] = iPt;
        tmpData[iPt * 3 + 1] = iPt + 1;
        tmpData[iPt * 3 + 2] = iPt + 2;
    }
    for (int iPt = 0; iPt < tmpDataSize; ++iPt)
    {
        tmpDataq[iPt * 3] = iPt + 1;
        tmpDataq[iPt * 3 + 1] = iPt + 1;
        tmpDataq[iPt * 3 + 2] = iPt + 1;
    }

    std::cout << "tmpData 012: " << tmpData[0] << " " << tmpData[1] << " " << tmpData[2] << std::endl;
    flann::Matrix<float> dataset(tmpData, tmpDataSize, 3);
    flann::Matrix<float> query(tmpDataq, tmpDataSize, 3);
    std::cout << "dataset 012: " << dataset[0][0] << " " << dataset[0][1] << " " << dataset[0][2] << std::endl;

    thrust::host_vector<float4> data_host(tmpDataSize);

    std::cout << "dataset.rows: " << dataset.rows << std::endl;
    for (int i = 0; i < dataset.rows; i++)
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值