J'essaye de calculer le nombre de transitions qui seraient faites dans une course de GED de Conway pour une matrice pxq pour n itérations. Par exemple, étant donné 1 itération avec l'état initial étant 1 clignotant (comme ci-dessous). il y aurait 5 transitions (2 naissances, 1 survie, 2 décès de sous-population). Je l'ai déjà travaillé, mais je voudrais convertir cette logique pour courir en utilisant CUDA. Voici ce que je veux porter à CUDA.noyau de cuda pour le jeu de la vie de conway
Code:
static void gol() // call this iterations x's
{
int[] tempGrid = new int[rows * cols]; // grid holds init conditions
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
tempGrid[i * cols + j] = grid[i * cols + j];
}
}
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
int numNeighbors = neighbors(i, j); // finds # of neighbors
if (grid[i * cols + j] == 1 && numNeighbors > 3)
{
tempGrid[i * cols + j] = 0;
overcrowding++;
}
else if (grid[i * cols + j] == 1 && numNeighbors < 2)
{
tempGrid[i * cols + j] = 0;
underpopulation++;
}
else if (grid[i * cols + j] == 1 && numNeighbors > 1)
{
tempGrid[i * cols + j] = 1;
survival++;
}
else if (grid[i * cols + j] == 0 && numNeighbors == 3)
{
tempGrid[i * cols + j] = 1;
birth++;
}
}
}
grid = tempGrid;
}
Sur quoi exactement voulez-vous de l'aide - des idées sur la parallélisation, le stockage, la programmation CUDA, etc. .? – Rup
Désolé, comment dois-je aborder le parallélisme? – dnbwise