Reply to comment

В общем я избавился от ветвлений таким образом:

  1.             sTimecc[threadIdx.x][threadIdx.y]=t[(y)*nz + (z)];
  2.                 sTimecf[threadIdx.x][threadIdx.y] = t[(y)*nz + (z+1)];
  3.                 sTimecb[threadIdx.x][threadIdx.y] = t[(y)*nz + (z-1)];
  4.                 sTimefc[threadIdx.x][threadIdx.y] = t[(y+1)*nz + (z)];
  5.                 sTimebc[threadIdx.x][threadIdx.y] = t[(y-1)*nz + (z)];

То есть увеличение количества чтений из глобальной памяти примерно в 3,9 раз (вы предлогали в 3,2 раза увеличить). Это привело к 17% увеличению времени исполнения......
Я понимаю это не то что вы предлогали - в данном случае одно и тоже значение из глобальной памяти читается 4 различными тредами. Не думаю что ваш вариант даст прирост производительности :-(.

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <i> <table> <td> <tr> <th>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Images can be added to this post.

More information about formatting options

Copyright © 2008-2011 Alex Tutubalin