CUDA determinando threads por bloco, blocos por grade

Eu sou novo no paradigma CUDA. Minha pergunta é determinar o número de threads por bloco e blocos por grade. Um pouco de arte e julgamento contribuem para isso? O que eu descobri é que muitos exemplos têm números aparentemente arbitrários escolhidos para essas coisas.

Estou pensando em um problema em que eu seria capaz de passar matrizes - de qualquer tamanho - para um método de multiplicação. Para que cada elemento de C (como em C = A * B) seja calculado por um único encadeamento. Como você determinaria os threads / blocos, blocos / grade nesse caso?

questionAnswers(4)

yourAnswerToTheQuestion