저는 10M float 벡터를 가지고 있습니다. 나는 100 개 요소의 합계를 알고 싶다. 따라서 총 10000 개의 합계를 알아야한다. 가장 빠른 방법은 무엇입니까?Boost :: vector vector partial sum의 가장 빠른 방법은 무엇입니까
1
A
답변
1
reduce_by_key
알고리즘, 멋진 반복기 및 Boost.Compute lambda expr을 사용하는 것이 좋습니다. 100 개의 요소마다 동일한 키로 표시되고 줄어 듭니다. 일부 성능을 절약하기 위해 keys_output
을 discard_iterator
으로 대체 할 수 있는지 확실하지 않습니다. 당신이 사용할 수있는 경우
boost::compute::vector<int> keys_output(values_input.size()/100, context);
boost::compute::vector<int> values_output(values_input.size()/100, context);
boost::compute::reduce_by_key(
boost::compute::make_transform_iterator(
boost::compute::make_counting_iterator<int>(0),
boost::compute::_1/100
),
boost::compute::make_transform_iterator(
boost::compute::make_counting_iterator<int>(values_input.size()),
boost::compute::_1/100
),
values_input.begin(),
keys_output.begin(),
values_output.begin(),
queue
);
관련 문제
- 1. std :: vector 또는 boost :: vector 스레드가 안전합니까?
- 2. C++ boost mpl vector
- 3. boost :: mpl :: vector 코드를 최적화하는 방법은 무엇입니까?
- 4. fusion :: vector + fusion :: push_back = fusion :: vector?
- 5. std :: vector (matlab) isempty :: vector (C++)
- 6. 어느 것이 가장 빠릅니까? boost :: multi_array 또는 std :: vector?
- 7. Vector :: Vector 기본 클래스에서 상속
- 8. std :: vector <boost :: function> with boost :: bind
- 9. APLX Char vector from Integer Vector
- 10. std :: vector :: iterator decreating :: vector :: begin()
- 11. multithread vector
- 12. Vector ArrayIndexOutOfBounds
- 13. 구조체의 std :: vector 초기화하기
- 14. std :: vector 중간에 요소를 삽입하는 가장 쉬운 방법은 무엇입니까
- 15. std :: vector 노출 코드 booststring ::
- 16. boost :: variant <std :: vector <int>, std :: vector <String>>에서 반복하는 방법은?
- 17. C++ std :: vector 요소를 사용하여 std :: vector 요소를 재정렬하십시오.
- 18. C++ std :: vector 내의 특정 요소를 검색하고 계산하는 가장 빠른 방법은 무엇입니까?
- 19. C++에서 map (value, index)을 vector (index, value)로 바꾸는 가장 빠른 방법은 무엇입니까?
- 20. std :: vector - right approach 리턴하기
- 21. Vector 클래스에서 operator = 만드는 방법은?
- 22. C++ std :: vector 전달 :: boost :: shared_ptr < foo >>
- 23. Vector 및 ArrayDeque 클래스
- 24. 'vector long long'의 가용성은 무엇입니까?
- 25. vector-of-vector의 문제점은 무엇입니까?
- 26. 함수 테이블로 mpl :: vector 사용
- 27. int 또는 vector 배열?
- 28. std :: vector vs std :: insert
- 29. std :: vector :: operator []의 반환 주소는 무엇입니까?
- 30. Object Vector C++
는'OpenCL' 2, 그때는 [여기] huseyin의 대답 (https://stackoverflow.com/questions/46861492/what-is-the-optimum-opencl-2-kernel @ 추천 -to-sum-floats) – kenba