예를 들어 COO 및 CSR 형식 (here이 아닌 경우)에서 저장된 다음 행렬 B가 있습니다. MATLAB sum(B,2) 함수를 coo 또는 csr (또는 둘 다) 형식을 사용하여 적용하는 효율적인 C++ 방법을 제안 해 주시겠습니까? 대형 어레이로 작업하는 것이 가능하기 때문에 병렬 프로그래밍 (omp 또는 CUDA (예 : 추력))을 사용하여 수행
내가 CUDA에서 sort_by_key()와 가 sort_by_key 동안 다시 주문 처리되지 않습니다 키, 단지 값 tiled_range을 사용하고 ... 예를 들어 : 키를 나타내는 벡터가 하나 있습니다 : Keys 0 1 2 3 4 5
나중에 tiled_range를 사용하여 값이 복제 된 새 벡터가 있습니다. Keys 0 1 2 3 4 5 0 1
GPU에서 여러 변수의 "수학"기능을 계산하는 함수가 필요합니다. 나는 추력과 그것의 zip_iterator을 사용하여 튜플에서 변수를 묶고, 함수기를 for_each으로 구현했습니다. 하지만 다른 "수학"기능을 계산할 수있는 보편적 인 기능을 원합니다. 그래서 함수에서이 펑터를 전달해야합니다. 이 작업을 수행하기 위해 나는 operator()(Tuple
몇 가지 테스트를하고 있는데 컴파일 할 때 -G 매개 변수를 사용하면 나보다 성능이 좋지 않음을 알게되었습니다. --device-debug (-G)
Generate debug information for device code.
를하지만 나에게 그런 나쁜 성능을 제공하는 이유를 알고 나에게 도움이되지 않습니다 나는 엔비디아의 문서를 확
두 개의 벡터 (oldvector 및 newvector)가 있습니다. 나는 다음과 같은 의사에 의해 정의 된 잔류의 값을 계산해야합니다 forall i : oldvector[i] = oldvector[i] - newvector[i]
a로 다음 : 현재 residual = 0;
forall i : residual += (oldvector[i] - new
순수한 CUDA 및 Thrust 라이브러리 함수 호출을 사용하여 K - 가장 가까운 이웃을 GPU에 구현했습니다. 유클리드 거리는 순수한 CUDA 커널로 계산됩니다. 그런 다음 추력 정렬 기능 (기수 정렬)을 사용하여 거리를 오름차순으로 정렬합니다. 마지막으로 K 첫 번째 요소 (즉, K 가장 가까운 이웃)가 정렬 된 벡터에서 검색됩니다. 구현이 잘 작동합
키를 저장할 벡터를 만들 필요없이 추력 라이브러리를 사용하여 키별로 정렬 할 수 있는지 궁금합니다. 키를 기준으로 정렬 한 후 vectorKeys: 0, 1, 2, 0, 1, 2, 0, 1, 2
VectorValues: 10, 20, 30, 40, 50, 60, 70, 80, 90
: 키와 값 예를 들어 나는 두 벡터를 다음 한 thrust::sor
추력이 관리 메모리를 사용하지 않는 경우에도 동일한 CUDA 6 애플리케이션 추력에서 cudaMallocManaged() 및 추력을 사용할 때 문제가 발생하는 문제가 있습니다. 단순히 사용하지 않는 관리 변수를 사용하면 추력이 실패하는 것만으로도 충분합니다. #include "thrust/device_ptr.h"
#include "thrust/sort.h
나는 추력을보고있다 그리고 나는 거의 (그러나 확실히)이 내 대답 질문에 발견 :이 질문에 대해 답이 게시 Finding the maximum element value AND its position using CUDA Thrust 예는 잘 작동하지만, 어떻게 원시 포인터를 사용하여 동일한 작업을 수행 할 수 있습니까? 우리가 내가 올바른 생각하는이 코드를