Reply to comment

Дело в том, что в выражении могут быть вызовы функций, описанных в этом же выражении (задача из области Genetic Programming, поэтому буду называть такие функции так, как их принято называть в этой области - Automatically Defined Functions или ADFs).

Пример такого выражения:
X X + 2 - ADF0 arg0 arg0 *

Это означает вот что: ADF0(X + X - 2), где ADF0 имеет один аргумент arg0 и возвращает его квадрат (arg0 * arg0). Таких функций в выражении может быть скажем до пяти, аргументов у каждой может быть скажем тоже до пяти, кроме того, ADF со старшим номером может вызывать ADF с младшим номером (ADF2(ADF1(ADF0(arg0)))) сколько угодно много. Обращать внимание на возможность наличия ADFs не надо - они не меняют задачу принципиально - но объясняют, почему на некоторых выражениях максимальная глубина стека может быть 60-70 элементов.

Я могу варьировать макс глубину стека перед запуском кернела, предварительно попробовав на зуб выражения на одном тест кейсе на CPU, далее, в зависимости от требуемой shared mem на поток (которая определяется максимальной возможной глубиной), потоков может быть от 32 до 160. Пытаюсь я запустить как можно больше потоков потому, что при 32 потоках в текущей имплементации всё работает существенно медленнее, чем при 160.

Моё мыло: babylon73@mail.ru. Если Вы бросите туда тестовое сообщение, то я могу отослать весь вычислительный код, он не сильно здоровый, но даст полную картину. Обсуждение же можно (и думаю нужно) продолжить тут - может быть полезным многим.

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