Topic outline

  • Architectures pour le calcul



    Depuis la première année, nous nous sommes attachés à appréhender les machines numériques de traitement de l'information dans une optique de compréhension des systèmes, de développemment d'application, ou d'une meilleure maîtrise du système d'exploitation. Ces approches étaient très systémiques. Cet enseignement est quant à lui dédié à l'accélération et donc l'optimisation algorithmique. Celle-ci peut s'opérer mathématiquement, en diminuant la complexité d'un algorithme, mais également à l'implémentation, en possédant une connaissance poussée de la machine d'exécution et des méthodologie d'optimisation. C'est sur ce second point que cet enseignement entend développer des compétences.

    Ce cours est découpé en 2 parties. L'une accès sur une bonne maîtrise des architectures processeurs matérielles dédiées au calcul et à l'accélération, et l'autre à la programmation parallèle sur machine dédiée.


    1. Architectures matérielles pour le calcul (hugo descoubes)

    • Hétérogénéité des architectures processeurs et machines de calcul : DSP, GPU, processeurs matriciels (Kalray), FPGA, ASIC (spécialisés), SoC/SoB (hybrides), GPP (généralistes), etc
    • Pipelines matériels CPU : in-order classique, superscalaire, VLIW, EPIC
    • Hiérarchies mémoires : caches processeurs et mémoires locales adressables.  Technologies des mémoires
    • Périphériques d'accélérations : DMA, fonctions algorithmiques dédiées (crypto, FFT, etc)
    • Application de TP (DSP VLIW C6678 de Texas Instrument) : applicatif de test, validation et mesure. Optimisation d'un algorithme du TNS (application RADAR). Optimisation assembleur (Pipelining software, programmation vectorielle, VLIW, loop unrolling, etc), optimisation C (intrinsic, alignement mémoire, etc), parallélisation de copies mémoire (IDMA, EDMA, etc), Modèle mémoire (linker script, etc), etc



    2. Programmation et architectures parallèles (Emmanuel Cagniot)

    https://cagniot.users.info.unicaen.fr/ 

    • Modèles d'exécution : SIMD, MIMD, etc
    • Modèles mémoire : UMA, NUMA, etc
    • Programmation parallèle et méthodes : Standard OpenMP, bibliothèque Intel TBB, CUDA, etc
    • Application de TP (x86/x64 sous GNU\Linux) : template programming C++, découverte et application du standard OpenMP, bibliothèque Intel TBB et pipelining algorithmique
  • Outils de Développement

    Les outils de développement proposés par Texas Instruments sont libres d'utilisation du moment que nous n'utilisons que le mode simulation ou certaines sondes de programmation, dont celle utilisée en TP (XDS100). Chaque exercice de TP peut être pré-compilé et testé à la maison avant l'arrivée en séance. De même, l'installation des outils puis l'utilisation en mode simulation pour l'analyse de traduction de programmes C vers ASM C6600 est sans aucun doute l'une des solutions de révision les plus efficaces dans une optique de préparation à l'examen sur table. Attention, bien installer CCS5.5 pour windows (W7, W8.1, W10 OK) possédant un mode simulation, CCS6 et CCS7 en sont dépourvus. 


    Configuration du simulateur sous CCS5.5. Une fois le projet créé et sa bonne compilation validée, réaliser les actions suivantes :

    • Project Explorer > targetConfigs > TMS320C6678.ccxml > cliquer sur le fichier de configuration
    • Connection > sélectionner "Texas Instruments Simulator"
    • Board or Device > sélectionner "C6678 Device Functional Simulator, Little Endian"
    • Cliquer sur "Save", lancer une session de debug et voilà !
    • De préférence, configurer le compilateur de la façon suivante (hors phase de mesure) :
      • Propriétés du projet > Build > C6000 Compiler
      • Optimization > optimization level > -O0
      • Debug Options > Debugging model > Full symbolic debug

  • TP groupe 1

    Préparations de TP

    Encadrant : hugo descoubes

    Pour déposer un devoir, il faut s'inscrire dans ce cours :

    En bas à droite, "Administration du cours-> s'inscrire dans le cours"


  • TP groupe 2

    Préparations de TP

    Encadrante : Isabelle Lartigau

    Pour déposer un devoir, il faut s'inscrire dans ce cours :

    En bas à droite, "Administration du cours-> s'inscrire dans le cours"