온라인 (스트리밍) 데이터가 포함 된 프로젝트를보고 있습니다. 나는 그 데이터의 슬라이딩 윈도우로 작업하고 싶다. 예를 들어, 내 벡터에 10 개의 값을 넣고 싶다고합시다. 11 번 값이 오면, 1 번 값을 떨어 뜨리고 모든 것을 옮기고 10 번 값을 11 번 자리에 놓고 싶습니다.추력의 벡터 전환
int n = 9;
thrust::device_vector<float> val;
val.resize(n+1,0);
// Shift left
for(int i=0; i != n-1; i++){
val[i] = val[i+1];
}
// add the new value to the last position
val[n] = newValue;
추력이 할 수있는 "빠른"방법이 있나요 :
긴 방법
는 다음과 같은 것입니까? 내가 바라는 프로젝트에는이 작업을 동시에 수행해야하는 약 500 개의 벡터가 있습니다.감사합니다.
[링 버퍼] (http://en.wikipedia.org/wiki/Ring_buffer)가 필요합니다. 이동할 필요가없고 카운터 하나와 고정 된 크기의 배열 만 필요합니다. –
@Viktor. 그게 ** 정확하게 ** 필요한 것입니다 !! 완전한. 큰 문제는 추력 장치 벡터로이 작업을 수행 할 수 있는지입니다. 나는 버퍼/벡터를 GPU에 유지하는 것을 선호한다. 생각? – Noah