내 프로젝트에 thrust 라이브러리와 cufft을 결합하고 싶습니다. 따라서 테스트를 위해 나는 단지 thrust::complex<double> -vectors와 함께 제대로 작동 thrust::sequence 동안 int length = 5;
thrust::device_vector<thrust::complex<double> > V1(length
추력을 사용하여 평균 및 표준을 계산하려면 this code을 찾았습니다. 복잡한 값을 사용하려고하는데 몇 가지 문제가 있습니다. 여기 코드입니다 : #include <thrust/device_vector.h>
#include <thrust/host_vector.h>
#include <thrust/transform_reduce.h>
#include <
다음은 추력, cublas 및 curand가 혼합 된 일부 코드에서 실행중인 CUDA 프로파일 러 (nvprof)의 로그 파일입니다. 첫 번째 커널은 내가 작성한 커널이므로 아무런 문제가 없다. 그러나 상당한 실행 시간을 차지하는 2 행에서 5 행을 해석하는 방법을 모르겠습니다. > Time(%) Time Calls Avg Min Max Name %
나는 트러스트 transform_reduce를하고 있으며, 펑터 내에서 thrust :: device_vector에 액세스해야합니다. 나는 device_vector를 반복하지 않는다. 그것은 내가 device_vector 참조를 전달하면서 펑터를 선언 할 수있게 해주지 만, begin() 또는 operator []를 사용하여 참조를 내버려 두지 않습니다.
배열을 n 개의 그룹으로 나눕니다. 각 그룹의 크기는 같고, 각 그룹에서 최대 수를 얻고 싶습니다. 예를 들어 는 : I는 각 스레드에 대한 그룹 ID를 계산 글로벌 atomicMax 어레이를 사용한다. 따라서 그룹 번호가 작 으면 실적이 좋지 않습니다. thrust::reduce_by_key이 작업을 수행 할 수 있지만 아직 파악하지 못했습니다. 더 좋은
CUDA의 배열에서 최대 값의 인덱스를 찾는 데는 빠르고 효율적인 구현이 필요합니다. 이 작업은 여러 번 수행해야합니다. 원래 cublasIsamax를 사용했지만 슬프게도 최대 절대 값의 인덱스를 반환합니다. 이는 절대 원하는 값이 아닙니다. 대신 thrust :: max_element를 사용하고 있지만 cublasIsamax와 비교할 때 속도가 느립니다.
에서 호출 BaseFunctor* f = new MyFunctor();
thrust::transform(it1,it2,MyFunctor);
목표는 사용자에게 몇 가지 세트를 운영하는 (같은 기본 타입과) 다른 펑터를 통과 할 수있는 능력을 제공하는 것입니다 추력 벡터에 포함 된 데이터 두 가지 방법으로이 결과를 얻으려고했습니다. 는 우선이 같은 서명으
나는 5000x500 행렬을 가지고 있으며 각 행을 cuda로 개별적으로 정렬하려고합니다. 나는 arrayfire를 사용할 수있다. 그러나 이것은 thrust :: sort에 대한 for 루프 일 뿐이며, 효율적이지 않아야한다. https://github.com/arrayfire/arrayfire/blob/devel/src/backend/cuda/kerne
나는 시간 - 시간/2에서 단계/2 및 스텝 사이즈 DT를 벡터 t을 작성을위한 다음과 같은 기능을 가지고 : 컴파일 할 때 #define THRUST_PREC thrust::complex<double>
__host__ void generate_time(thrust::device_vector<THRUST_PREC> *t, const double dt, c
VS2013 : Community Edition 프로젝트에서 .cu 파일을 두 개 이상 사용할 수 있습니까? 응용 프로그램의 진입 점 역할을하는 main.cu와 일부 클래스의 메서드 구현을 유지하는 class.cu가 있다고 가정 해 봅시다. 컴파일 할 수 있습니까? 지금 당장 나는 이것과 정확히 같아 보이는 프로젝트를 가지고 있으며 사람들이 일반적으로 g