정렬 용 추력 예제를 실행했습니다. 문제는 thrust::sort
다음에 출력에 모두 0
이 포함되어 있다는 것입니다.CUDA - thrust :: sort on device는 0 만 반환합니다.
제발, 여기서 뭐가 잘못 됐는지 말해줘.
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <thrust/copy.h>
#include <thrust/sort.h>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(void)
{
thrust::host_vector<int> h_vec(32 << 20);
thrust::generate(h_vec.begin(), h_vec.end(), rand);
thrust::device_vector<int> d_vec=h_vec;
for(int i = 0; i<32;i++)
cout<<d_vec[i]<<endl;
cout<<endl<<endl<<endl;
thrust::sort(d_vec.begin(), d_vec.end());
for(int i = 0; i<32;i++)
cout<<d_vec[i]<<endl;
cout<<endl<<endl<<endl;
thrust::copy(d_vec.begin(), d_vec.end(), h_vec.begin());
for(int i = 0; i<32;i++)
cout<<h_vec[i]<<endl;
return 0;
}
* 완전한 * 코드를 제공하십시오 (왜'# include' 문을 제거해야합니까?) 다른 사람이 당신을 도우려고 어려워집니다. 실행중인 GPU와 사용중인 컴파일 명령을 확인하십시오. 귀하의 코드는 나를 위해 잘 실행, 전체 예제는 [여기] (http://pastebin.com/a6N5JrYJ)입니다. 실행하려는 컴퓨터에 문제가 있거나 사용중인 GPU에 대해 컴파일 명령이 잘못되었을 수 있습니다. –
#INCLUDE <스러스트/host_vector.h> #INCLUDE <스러스트/device_vector.h> #INCLUDE <스러스트/copy.h> #INCLUDE <스러스트/sort.h> #INCLUDE 사용법 #include "iostream" 이들은 포함 문입니다 –
Roshan
GPU는 GT 610 이고 런타임 라이브러리 멀티 스레드 디버그 DLL (/ MDd) – Roshan