2012-02-22 2 views
1

Existe-t-il un moyen de déterminer la taille de cache optimale (L1 et L2 éventuellement) dans C#? Je demande cela parce que formellement travaillé avec: http://en.wikipedia.org/wiki/Loop_tiling Loop Tiling pour s'assurer des données volumineuses (par exemple Multiplications matricielles de similaires [3000] par [3000]Détermination de la taille du cache

Actuellement, je viens d'exécuter plusieurs tests par ordinateur, ce qui augmente la taille des blocs, et saisi le cache optimal de cette façon, mais je cherche un calculateur de temps d'exécution beaucoup plus rapide, ou API, ou quelque chose pour m'aider à déterminer cela au sein de C#

+0

Possibilité de dupliquer [comment déterminer la taille du cache de l'UC dans .NET?] (http://stackoverflow.com/questions/6995787/how-to- déterminer-cpu-cache-size-in-net) – eirikdaude

Répondre

-1

AFAIK, C# n'est pas une langue qui se soucie d'un tel bas niveau questions .Net Framework et l'OS sous-jacent devraient prendre soin de cela.Ce n'est pas votre problème en tant que programmeur .Net

Si vous voulez savoir, vous devrez utiliser/écrire une fonction. n/bibliothèque dans un langage de niveau inférieur comme C/C++ (like this)

+1

J'utilisais C# pour le traitement parallèle principalement. Je sais comment le faire un peu en C mais je me sentais beaucoup mieux de le faire en C#. Je pourrais toujours tricher un peu et écrire quelque chose en C ou C++ pour le sortir et le lire en C# je ne pouvais pas? – Falcon165o

+0

C'est ce que je voulais dire. Aussi, si vous vérifiez le lien que j'ai donné, sous Linux, vous pouvez récupérer le cache de * sys *, bien que je ne pense pas que cela vous intéresse du tout :) – m0skit0

+1

Ouais j'ai vu ça; alors je l'ai tracé à la version de Windows et je pourrais le baser. Merci :) Marquage comme réponse. – Falcon165o

Questions connexes