Note that there are some explanatory texts on larger screens.

plurals
  1. POCUDA doesn't work as expected?
    primarykey
    data
    text
    <p>I have programmed CUDA code.</p> <pre><code>unsigned long mask_buffer; int s; off_t p, for(p=0;p!=5000;p++) { for(s=start;s!=end;s++) { ref_off = *(((unsigned int*)(idx_base)) + p); if((int)(first_indexes[s-start_sequence] % 8 - ref_off % 8) &lt; 0) { int shamt2 = (ref_off % 8 - first_indexes[s-start_sequence] % 8); mask_buffer = *((unsigned long *)(msk_base + (ref_off - first_indexes[s-start_sequence])/8)) &gt;&gt; shamt2; if( ( (*(unsigned long *)(seqmaskc + 16 * (s-start_sequence))) ^ mask_buffer ) &lt;&lt; shamt2) continue; } else if((int)(first_indexes[s-start_sequence] % 8 - ref_off % 8) == 0) { mask_buffer = *((unsigned long *)(msk_base + (ref_off)/8)); if( (*(unsigned long *)(seqmaskc + 16 * (s-start_sequence)) ^ mask_buffer)) continue; } else { int shamt2 = 8 - (first_indexes[s-start_sequence] % 8 - ref_off % 8); mask_buffer = *((unsigned long *)(msk_base + (ref_off/8- first_indexes[s-start_sequence]/8) - 1)) &gt;&gt; shamt2; if( ( (*(unsigned long *)(seqmaskc + 16 * (s-start_sequence))) ^ mask_buffer ) &lt;&lt; shamt2) continue; } int shamt = (ref_off % 4 - first_indexes[s-start_sequence] % 4) * 2; memcpy(reference_blk, ref_base + ref_off / 4 - first_indexes[s-start_sequence] / 4, sequence_bytes); for (rp = last_rp ; rp != (unsigned long *) reference_blk ; rp--) { unsigned long tmp = ((*rp) &amp; ((1 &lt;&lt; shamt) - 1)) &lt;&lt; (8 * sizeof(unsigned long) - shamt); *rp = (*rp &gt;&gt; shamt) | shifted_in; shifted_in = tmp; } *rp = (*rp &gt;&gt; shamt) | shifted_in; if (sequence_length &amp; 0x3) reference_blk[sequence_length &gt;&gt; 2] &amp;= (1 &lt;&lt; ((sequence_length &amp; 0x3) &lt;&lt; 1)) - 1; for ( i = sequence_length &gt;&gt; 2 ; i &amp; (SEQUENCE_ALIGN - 1) ; i++ ) reference_blk[i] = 0; //-- instead of memcmp --// int v = 0; char *p1 = (char *)sequence; char *p2 = (char *)reference_blk; int tmp_asd = sequence_bytes; while(tmp_asd!=0) { v = *(p1++) - *(p2++); if(v!=0) break; tmp_asd--; } if(v == 0) { mat_count[s - (int)start_sequence]++; /* Maintain count */ mat_position[s - (int)start_sequence] = ref_off-first_indexes[s-start_sequence]; /* Record latest position */ } } } </code></pre> <p>This for loop is main function of my code. But the problem is that variable "p" is never increased over 5 or 6. I have GT530 in my computer and my CUDA Driver Version and Runtime Version are also 4.0. What is problem in this code???</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload