← Blog
Publié le
2025-09-01

cuSpatial 25.04 : contrôles des traitements géospatiaux sur GPU

Procédure pour une ancienne version de cuSpatial. La dernière version est 25.04. Depuis RAPIDS 25.06, NVIDIA ne publie plus ses paquets et ne l’inclut plus dans les conteneurs ni le métapaquet RAPIDS. Consultez l’avis de prise en charge. Cette page décrit les contrôles d’un environnement existant aux versions fixées, pas une installation RAPIDS actuelle.

Ce que nous allons couvrir

  • Documenter un environnement historique compatible
  • Vérifier les versions de cuDF et cuSpatial avant d’utiliser une API
  • Deux approches : le test d’appartenance d’un point à un polygone et son passage à l’échelle avec filtrage spatial
  • Une liste de contrôles de justesse et de performance
  • Pièges liés à la VRAM, aux E/S et à la projection

Préparer et valider votre calcul GPU

Vérifiez la configuration disponible et la compatibilité logicielle avant le lancement. Comparez les résultats à une référence et sauvegardez vos entrées et sorties hors de l’instance.

Try Compute now

1) Choisissez votre image

Pour une procédure cuSpatial existante, conservez l’environnement validé et ses dépendances exactes. Ne supposez pas qu’une image RAPIDS actuelle contient cuSpatial.

A) Reproduire une image existante

  • Consignez le registre, le tag et l’empreinte d’une image testée. Un espace réservé comme 24.xx n’est ni une version installable ni une preuve de compatibilité.
  • Variables d’environnement : NVIDIA_VISIBLE_DEVICES=all
  • NVIDIA_DRIVER_CAPABILITIES=compute,utility
  • CMD : conservez votre script de démarrage ou un shell interactif.
  • B) Reproduire des dépendances verrouillées

    Restaurez l’environnement à partir d’un fichier de dépendances verrouillées pour la version choisie. Consignez Python, cuDF, RMM, CUDA et les exigences du pilote. Vérifiez les imports et un petit test de référence avant les données réelles ; une installation sans versions fixes ne démontre pas la reproductibilité.

    Ces options décrivent une reproduction, pas une installation vérifiée. Évaluez la disponibilité des paquets, leur compatibilité et leur maintenance pour l’environnement conservé.

    2) Des formats de données qui fonctionnent bien

    • GeoParquet peut conserver la géométrie et le système de coordonnées. Utilisez un lecteur géospatial ; une table Parquet ne devient pas automatiquement un objet géométrique cuSpatial.
    • Le format Shapefile peut servir de source. Si vous le convertissez en GeoParquet, validez les géométries et les métadonnées après conversion.
    • Utilisez le même système de coordonnées et le même ordre des axes pour les points et les polygones. Pour les distances et les surfaces, choisissez une projection adaptée au lieu de traiter longitude et latitude comme des coordonnées métriques.

    3) Test d’appartenance à un polygone (PIP) : principe

    Commencez par un petit jeu aux résultats connus : points intérieurs, extérieurs, sur une limite et dans un trou. L’API documentée doit correspondre à l’environnement installé.

    La référence 25.04 attend deux GeoSeries dans point_in_polygon, pour les points et les polygones. Ne reprenez pas l’ancien appel à six tableaux sans vérifier la version installée. Construisez des géométries valides et comparez le test à une référence CPU avant de changer d’échelle.

    Remarques

    • Définissez la sortie attendue : appartenance à au moins un polygone ou toutes les paires point-polygone. Une réduction à un booléen par point perd l’identité des polygones et les correspondances multiples.
    • Utilisez les types de coordonnées acceptés par l’API et validez la précision, en particulier près des limites.

    4) PIP à grande échelle : filtrez puis testez

    Utilisez un index spatial pour construire les candidats point-polygone pertinents. Une enveloppe unique autour de tous les polygones exclut seulement les points hors de cette étendue ; ce n’est pas une jointure par polygone.

    Dans une procédure indexée adaptée à la version, conservez les identifiants des points et polygones pendant le tri, la sélection des candidats et le test exact. Comparez le résultat à la petite référence non indexée. Une enveloppe globale ne suffit pas à identifier les correspondances.

    Mesurez la réduction des candidats et le temps total. L’index a un coût, et une matrice dense points-polygones peut dépasser la mémoire même si les coordonnées y tiennent.

    5) Lecture de données réelles (GeoParquet)

    Utilisez un lecteur GeoParquet géospatial, inspectez les géométries et leur projection, puis utilisez la conversion documentée pour votre version de cuSpatial. Une table personnalisée d’anneaux est un schéma distinct : définissez ses offsets, ses parties et ses identifiants.

    Après conversion, comparez les nombres d’objets, leurs identifiants, la validité des géométries et la projection. Conservez les sources jusqu’à validation.

    6) Partitionner les données volumineuses

    Traitez l’implémentation distribuée comme un travail distinct. Vérifiez les fonctions géométriques et les conversions sur chaque processus.

    • Répartissez les points entre les processus de calcul et les GPU.
    • Distribuez les polygones seulement si leur volume et la stratégie de jointure le permettent ; sinon, définissez des partitions spatiales.
    • Conservez les identifiants, gérez les frontières des partitions et recherchez les correspondances manquantes ou dupliquées.

    Envelopper une table cuDF dans Dask ne fournit pas à lui seul une jointure spatiale distribuée correcte. Validez le résultat combiné avant de mesurer le débit.

    7) Liste de mesures des performances

    Utilisez les mêmes entrées, la même définition des sorties et les mêmes contrôles pour chaque comparaison.

    Consignez les volumes, la complexité géométrique, la projection, la précision, les versions, le matériel et les résultats attendus. Mesurez séparément lecture, conversion, indexation, test exact et sortie, avec synchronisation GPU lorsque la mesure l’exige.

    Calculer le coût par million de points :

    Pour un nombre non nul de points traités avec succès : coût par million = coût total mesuré × 1 000 000 / nombre de points. Précisez les polygones et la sortie attendue pour comparer la même tâche.

    8) Conseils sur la VRAM et les performances

    • VRAM : surveillez la mémoire GPU avec nvidia-smi. Si elle approche de sa capacité, réduisez la taille des partitions de points.
    • Projection : vérifiez l’ordre des axes et les unités, puis conservez le système choisi dans les métadonnées de sortie.
    • E/S : comparez l’emplacement des données, la taille des groupes de lignes et la compression sur un échantillon représentatif. Utilisez un stockage NVMe local seulement s’il est disponible, et mesurez les transferts en plus des lectures.
    • Précision : mesurez mémoire et durée pour une précision validée par la référence ; ne supposez pas qu’un type est toujours plus rapide.
    • Journalisation: chronométrez chaque étape (chargement, filtre, PIP) séparément ; cela vous permet de voir les goulots d'étranglement.

    9) Résolution des problèmes

    Erreur CUDA ou GPU absent
    Vérifiez nvidia-smi dans le conteneur. Contrôlez l’environnement hôte, les périphériques attribués, la compatibilité du pilote et les réglages de l’image ; les variables seules ne garantissent pas l’accès au GPU.

    Mémoire épuisée
    Réduisez les partitions et comptez la mémoire des candidats et des sorties, pas seulement celle des points.

    Résultats incorrects
    Vérifiez projection, axes, anneaux fermés valides, trous, règle de frontière et alignement des identifiants après filtrage ou tri.

    Lectures lentes
    Mesurez séparément transfert, lecture et conversion. Testez les changements de stockage, de format et de groupes de lignes sur un échantillon avant de convertir tout le jeu de données.

    Relevé de méthode

    Conservez l’empreinte de l’image testée, les dépendances verrouillées, les schémas, les conversions, les réglages d’index, les identifiants de sortie, les tests et les durées. Indiquez que cuSpatial est une dépendance ancienne. Cette liste n’est ni une commande d’installation ni une configuration exécutable.

    Lecture associée

    Essayez Compute dès aujourd'hui

    Les modèles personnalisés réutilisent une configuration testée. Vérifiez séparément la compatibilité et la capacité disponible. Sauvegardez les données hors de l’instance et consultez les conditions actuelles de redémarrage et de conservation avant l’arrêt.

    ‍

    Votre prochaine charge de travail sur Hivenet.

    Choisissez une charge de travail d’IA, de calcul ou de stockage à tester sur Hivenet, ou échangez avec notre équipe sur sa mise en production.