2014-09-16 4 views
0

Есть ли способ реализовать в renderscript умножение любых матриц witn mxn и nxp? Из пакетов по умолчанию я обнаружил только жесткую реализацию для умножения матриц размером 4x4, 3x3, 2x2.Есть ли способ реализовать произвольное множительство матрицы в renderscript?

Вот определение: http://developer.android.com/reference/renderscript/rs__types_8rsh_source.html Здесь реализации: https://searchcode.com/codesearch/view/40545939/

Im новичок Renderscript, но с пути, как определены типы выглядит для меня не представляется возможным. Кроме того, если используется Allocation, то все примеры, которые я видел, всегда имеют одинаковые значения inAllocation и outAllocation, равные размерам вектора (массивов).

Возможно, у кого-то есть идея по этому поводу?

Edit:

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

rs_allocation gInA; 
rs_allocation gInB; 
rs_allocation gOut; 
rs_script gScript; 

void root(*v_out, uint32_t x, uint32_t y) { 
// for every x, y on the out matrix calculate the multiply 
// exp if x=y=1 do calc for row 1 from gInA and column 1 from gInB 
// but what are the sizes from this matrices, or we also need to set // dose as variable? 
} 

void calculate() { 
    // how we can call for each x, y of the predefined gOutMatrix? 
    rsForEach(gOut, NULL); 
} 

Возможно, небольшой код snipett будет приятным с вашей стороны. Tnx, Blaze

ответ

1

простым способом было бы использовать только выход. Выделение и использование getElementAt_<type> для чтения с ввода. Выделения другого размера.

Мне любопытно - если бы мы добавили это как неотъемлемый, вам конкретно нужен только GEMM, или есть другие операции BLAS, которые вы хотели бы поддержать?

+1

Привет, Тим, чтобы быть тем, у меня долгое время не работает графика. Но мне было трудно поверить, что такие вещи не являются неотъемлемыми, все остальные фреймворки - языки имеют это по умолчанию (используется для многого работы с Matlab). Помимо этого, мне также трудно реализовать себя. Как вы говорите, я начал с использования двух входных распределений, установленных напрямую. Пожалуйста, проверьте ошибку, я сделал обновление. Tnx – user1257452

Смежные вопросы