में लगातार स्मृति उपयोग मैं इसे स्वयं नहीं समझ सकता, यह सुनिश्चित करने का सबसे अच्छा तरीका है कि मेरे कर्नेल में उपयोग की गई स्मृति स्थिर है। http://stackoverflow...r-pleasant-way पर एक समान प्रश्न है। मैं GTX580 के साथ काम कर रहा हूं और केवल 2.0 क्षमता के लिए संकलित कर रहा हूं।CUDA कोड
cudaMalloc(src, size);
cudaMemcpy(src, hostSrc, size, cudaMemcpyHostToDevice);
Foo<<<...>>>(src, result);
वैकल्पिक तरीका है
__constant__ src[size];
फ़ाइल .cu में जोड़ने के लिए, से src हटाने सूचक: मेरी गिरी
तरह__global__ Foo(const int *src, float *result) {...}
मैं मेजबान पर निम्नलिखित कोड निष्पादित लग रहा है कर्नेल और निष्पादित
cudaMemcpyToSymbol("src", hostSrc, size, 0, cudaMemcpyHostToDevice);
Foo<<<...>>>(result);
क्या ये दो तरीके बराबर हैं या पहला व्यक्ति वैश्विक स्मृति की बजाय निरंतर स्मृति के उपयोग की गारंटी नहीं देता है? आकार गतिशील रूप से परिवर्तन करता है इसलिए दूसरा तरीका मेरे मामले में आसान नहीं है।