我用Mark Harris的着名幻灯片实现了缩减#1,但结果是0。我在输入数组中填充了幻灯片中显示的相同值。我使用命令nvcc reduction1.cu -o red1使用cuda 7.0编译。哪里出错了?感谢。
Observable.zip(Observable.interval(1, TimeUnit.SECONDS), Observable.fromIterable(iterableRequests),
new BiFunction<Long, RequestInput, RequestResult>() {
@Override
public RequestResult apply(@NonNull Long aLong,
@NonNull final RequestInput request) throws Exception {
return request;
}
})
.flatMap(new Function<RequestResult, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(RequestResult requestResult) throws Exception {
return createObservableFromRequest(requestResult)
.retryWhen(new Function<Observable<Throwable>, ObservableSource<?>>() {
// return throwable observable
})
}
})
.subscribe(new Observer<ObservableSource<?>>() {
//.. onSubscribe {}
//.. onError {}
//.. onComplete {}
@Override
public void onNext(ObservableSource<?> observableSource) {
//do something with each network result request emission
}
});
答案 0 :(得分:1)
正如talonmies所说,你正在使用动态共享内存,但你没有为它分配任何内存空间。您必须将此内存的大小指定为内核执行配置的第三个参数。
reduce1<<<1, THREADS_PER_BLOCK, 64>>>(deviceInput, deviceOutput);
^^
修复此代码的另一种方法是使用静态共享内存。像这样声明你的共享内存:
__shared__ int sdata[16];
在向CUDA提问之前,请先阅读this。