转载请注明出处!
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++)