Existe-t-il un moyen efficace de prendre un sous-ensemble d'un tableau C# et de le passer à un autre code (sans modifier le tableau d'origine)? J'utilise CUDA.net qui a une fonction qui copie un tableau sur le GPU. Je voudrais par exemple passez la fonction à un 10ème du tableau et copiez ainsi chaque 10ème du tableau sur le GPU séparément (à des fins de pipelining).Obtention efficace de sous-ensembles de tableaux
La copie de la matrice de cette manière devrait être aussi efficace que la copie en une fois. Cela peut être fait avec un code dangereux et en référençant juste l'emplacement de mémoire approprié mais à part ça je ne suis pas sûr. La fonction CopyTo copie le tableau entier dans un autre tableau, cela ne semble donc pas utile.
Cest bon pour certaines fins mais c'est pas efficace, un Array.Copy serait beaucoup plus rapide. –
En quoi n'est-ce pas efficace? Si vous voulez seulement parcourir des parties d'un tableau, c'est plus efficace que de copier un tableau. –
Désolé devrait expliquer dans le bon sens. Pour l'itération, vous avez peut-être raison, mais il y a beaucoup d'opérations qui se produisent lorsque vous utilisez 'yield'. L'auteur de questions de l'auteur est comment copier un sous-ensemble d'un tableau au gpu, en utilisant la méthode décrite ci-dessus vous devez appeler 'ToArray()' ce qui serait terriblement inefficace. La méthode n'est pas mauvaise mais pas bonne à cet effet à mon humble avis. –