Недавно я видел демонстрацию arrayfire на GTC и решил попробовать. Вот несколько вопросов, с которыми я столкнулся, пытаясь использовать его. Я запускаю Visual Studio 2013 в системе Windows 7 с OpenCL из AMD App SDK 2.9-1.
Самое большое разочарование заключается в том, что я не могу просмотреть состояние объектов массива в отладчике, чтобы увидеть, какие данные в нем находятся. Я должен полагаться на оператор af_print. Это очень раздражает. Есть ли способ настроить отладчик, чтобы я мог видеть данные в массиве, не распечатывая их?
Когда у меня есть данные в массиве, как мне вернуть значения в виде стандартных типов данных. Пример показан ниже. Я пытаюсь вернуть элемент 5,0 как двойной. Строка в примере не работает, и я не могу привести ее ни к какому стандартному типу. Единственное, что я могу назначить, это другой массив. Как мне вернуть свои данные?
array test = constant(0, dim4(10, 2));
test(span, 1) = 10.5;
double val = test(5, 0); //This does not compile.
Есть ли простой способ сериализовать/десериализовать массив на диск? Я не видел способа сделать это, и, поскольку я не могу вернуть значения в виде стандартных типов, я не знаю, как их сохранить.
Я просматривал образец учебника по дождю, который вы предоставили, но, похоже, он дает неверные результаты. Например, в строке 52 есть оператор печати «af_print (дождь);». Предполагается распечатать количество осадков на каждом участке, но в нем есть все 8, что неверно. Я пробовал это как с процессором, так и с версией opencl и получил те же результаты. Некоторые другие расчеты также неверны. Код выглядит так, как будто он должен быть правильным, так это ошибка или код неправильный?