Reply to comment

Однако - я не очень понимаю, как это бороть.

1. Не-coalesced чтение в EvaluateTestCase. Да - оно в цикле, который проходит по всему выражению int-by-int, но я хоть убей не могу понять, как от этого избавиться. По thread id я считаю номер выражения для вычисления и номер тест кейса для подстановки, как в это втиснуть ещё и сам обсчёт - просто не знаю.

2. Читать в shared mem я не могу - она почти всё занята стеками (я запускаю максимально возможное кол-во потоков (кратное 32) на блок в зависимости от ожидаемой макс глубины стека, вот почему я где-то выше сетовал про 32K памяти в shared mem.

Тут видимо имеет место быть сложность алгоритмическая, мой подход неоптимален в контексте GPU, но пока не понимаю, как это изменить.

Кстати, я вылизал кернел настолько, что он стал примерно в полтора раза быстрее моего атлона (был в два раза медленнее), но это всё суть ловля блох, не глобальный прорыв, а рытьё инета пока не дало результатов по параллельному обсчёту постфиксных выражений.

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

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.

Copyright © 2008-2009 Alex Tutubalin