особенности программирования на современном этапе

топ 100 блогов uzhas_sovka12.09.2012 Наверняка много среди читающих профессиональных программистов,
не то чтобы в этом было что-то плохое.
Честно заработанный кусок хлеба, и вообще.

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

Что код делает и почему он такой красиво-гениальный короче.
А уж потом вернемся к Мессершмиту и прочему дискурсу.
Может быть.

#define PADDING (32)
#define GROUP_DIMX (32)
#define GROUP_DIMY (2)
...

int global_input_stride = W * GROUP_DIMY;
int global_output_stride = (H + PADDING) * GROUP_DIMY;

int local_input_stride = GROUP_DIMY * (GROUP_DIMX + 1);
int local_output_stride = GROUP_DIMY;

....

tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index];

barrier(XXX_LOCAL_MEM_FENCE);

output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output];

upd. дал еще больше подсказок и намеков,
эксперимент продолжается

Оставить комментарий

Архив записей в блогах:
Вы меня поразили)) Я то думала.. это я всем расскажу , что беременна !! А оказалось , что все мои читатели признались , что сами беременные)))) Теперь мне кажется , что весь мир беременный)) почти каждый третий комментарий от беременной девочки))) ...
20 июня 55-летний глава сингапурского отделения "Лукойла" Валентин Иванов женился на 17-летней модели Лизе Адаменко. Роман Иванова и манекенщицы, свадьба, это любовь? Интересно вышла ли замуж модель Адаменко за 55-летнего слесаря с зарплатой в 7 тыщ рублей? Добавляйтесь в друзья и ...
Опять гуляла с коляской возле церкви. Подхожу - а там бабки в входа сидят и продают что-то. Большие такие вёдра у них. Ну, думаю, соленья привезли. Капуста, огурцы хрустящие - как раз к новогоднему столу. Присмотрелась - это не торгующие бабки, а милостыню просящие. В бесформенных ...
Поискала-почитала, но так и не нашла ответа на свой вопрос. Каждый год 1 декабря мы наряжаем ёлку, украшаем общий коридор, стены в квартире. И все хорошо, но за 2-3 недели вс красота покрывается слоем пыли. А к концу новогодних праздников хоть выкидывай все украшения. Поделитесь идеями, ...
...Всем этим Максимам Горьким, Куприным, Блокам, Сологубам, Аверченко, Чёрным, Кузминым, Буниным и проч. и проч. — нужна лишь дача на реке. Такую награду даёт судьба портным. С высоты небоскрёбов мы взираем на их ничтожество!.. Пощёчина общественному вкусу Тут много в сети говорят ...