Halide :: sum 중첩 된 인쇄 루프는 tutorial으로 작성된 최적 값과 동일하지 않습니다. 이 코드는 제로 초기화 및 합계를 위해 별도의 루프를 제공합니다. Halide::Func f("f");
Halide::Var x("x");
Halide::RDom r(0, 3);
f(x) = Halide::sum(r + x);
GPU로 축소를 수행하려고합니다. 즉, 배열의 모든 요소에서 최대 값을 찾으려고합니다. Nvidia here의 자습서가 있습니다. 가장 간단한 방법으로 슬라이드 7을 예로 들어 보겠습니다. 유일한 문제는 배열이 너무 큽니다! 40 억 개의 요소에 도달 할 수 있습니다. 슬라이드 7의 샘플 코드에서 블록 공유 메모리와 전역 메모리간에 앞뒤로 복사해야하며 모든
은 다음과 NumPy와 배열의 배열을 고려하십시오. 어레이의 각 요소가 있으므로, 연속, 동일 AND의 항복한다 때문에 2
: y = np.bitwise_and.reduce(x)
나는 결과로 생길 난이 배열의 bitwise_and 환원을 수행 할 동일한 결과이지만 대신 다음과 같이 표시됩니다. 0
왜 불일치가 발생합니까? reduce 문서화 문자
나는 this 좋은 설명을 다음과 그것을 __inline__ __device__ int warpReduceMin(int val)
{
for (int offset = warpSize/2; offset > 0; offset /= 2)
{
int tmpVal = __shfl_down(val, offset);
if (tmp
나는 caffe의 환원 층에 관한 질문이 있습니다. 내 .prototxt 파일에서이 레이어를 사용하는 방법에 대한 예제를 찾지 못했습니다. 아무도 나에게이 계층을 사용하는 방법에 대한 간단한 예제를 줄 수 있다면 고맙겠습니다. 이는 문서이다 http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1ReductionLa
Numba 패키지를 사용하여 몇 가지 기본적인 CUDA 함수를 테스트했습니다. 내 주요 목표는 Richardson-Lucy 알고리즘을 GPU에 구현하는 것입니다. 이 때문에이 기능은 CPU에 빨리 합리적으로 실행 def dummy(arr1, arr2):
return (arr1 * arr2).sum()/((arr2**2).sum() + eps)
CUDA에서 배열의 모든 요소의 합계를 계산하려고합니다. 나는이 코드를 생각해 냈다. 오류없이 컴파일됩니다. 그러나 결과는 항상 0입니다. 잘못된 기기 기호가 cudaMemcpyFromSymbol에 있습니다. 나는 스러스트 (Thrust) 나 누더기 (Cublas) 같은 라이브러리를 사용할 수 없습니다. #define TRIALS_PER_THREAD 409
나는 람다 기간의 정상적인 형태를 계산 중입니다. 나는 또한 해결책을 가지고 있으므로 "끝"까지 나의 단계가 옳았다는 것을 안다. 주어진 기간은 (\a.\b.(\x.a b x)(\y. b y x) a) (\f. f f)g
이며 그의 normalform는 g g (\y. g y x)(\f. f f)
나는 또한이있어하지만 내가 계속이 마지막 용어입니다
//In other words, this equilavent to cv::Mat1f mat(5,n)
//i.e. a matrix 5xn
std::vector<cv::Mat1f> mat(5,cv::Mat1f::zeros(1,n));
std::vector<float> indexes(m);
// fill indexes
// m >> nThreads (f
을 사용하여 큰 벡터로 배열 된 동일한 길이의 복수 블록 을 줄이는 방법을 찾고 있습니다. 하나의 큰 배열로 배열 된 N 개의 하위 배열 (인접 요소)이 있습니다. 각 하위 배열의 크기는 고정되어 있습니다. 그래서 전체 배열의 크기는 다음과 같습니다. N * K 내가하고있는 일은 커널을 N 번 호출하는 것입니다. 난이 (의사 코드)처럼 그것을 할 것입니다