1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-06-25 22:43:14 +00:00

cuda multicorrelator bug correction

This commit is contained in:
Javier 2016-06-17 17:35:19 +02:00
parent 2c327b0de4
commit 6cdca3b269
2 changed files with 9 additions and 4 deletions

View File

@ -160,7 +160,8 @@ bool cuda_multicorrelator::init_cuda_integrated_resampler(
//cudaSetDevice(max_device);
//set random device!
cudaSetDevice(rand() % num_devices); //generates a random number between 0 and num_devices to split the threads between GPUs
selected_gps_device=rand() % num_devices;//generates a random number between 0 and num_devices to split the threads between GPUs
cudaSetDevice(selected_gps_device);
cudaGetDeviceProperties( &prop, max_device );
//debug code
@ -174,9 +175,8 @@ bool cuda_multicorrelator::init_cuda_integrated_resampler(
printf("deviceOverlap= %i \n",prop.deviceOverlap);
printf("multiProcessorCount= %i \n",prop.multiProcessorCount);
}else{
int whichDevice;
cudaGetDevice( &whichDevice );
cudaGetDeviceProperties( &prop, whichDevice );
cudaGetDevice( &selected_gps_device);
cudaGetDeviceProperties( &prop, selected_gps_device );
//debug code
if (prop.canMapHostMemory != 1) {
printf( "Device can not map memory.\n" );
@ -242,6 +242,8 @@ bool cuda_multicorrelator::set_local_code_and_taps(
int n_correlators
)
{
cudaSetDevice(selected_gps_device);
//********* ZERO COPY VERSION ************
// // Get device pointer from host memory. No allocation or memcpy
// cudaError_t code;
@ -276,6 +278,7 @@ bool cuda_multicorrelator::set_input_output_vectors(
)
{
cudaSetDevice(selected_gps_device);
// Save CPU pointers
d_sig_in_cpu =sig_in;
d_corr_out_cpu = corr_out;
@ -312,6 +315,7 @@ bool cuda_multicorrelator::Carrier_wipeoff_multicorrelator_resampler_cuda(
int n_correlators)
{
cudaSetDevice(selected_gps_device);
// cudaMemCpy version
//size_t memSize = signal_length_samples * sizeof(std::complex<float>);
// input signal CPU -> GPU copy memory

View File

@ -157,6 +157,7 @@ private:
float *d_shifts_chips;
int d_code_length_chips;
int selected_gps_device;
int threadsPerBlock;
int blocksPerGrid;