Find Jobs
Hire Freelancers

Manually optimizing an algorithm (modifying Hcl Code)

$8-15 USD / hour

Fermé
Publié il y a environ 9 ans

$8-15 USD / hour

For this project you will need to modify HCL code to speed up an algorithm: here is the first part of the more specific description: You will be working in directory sim/pipe in this part. The ncopy function (see sim/pipe/ncopy.c) copies a len-element integer array src to a non-overlapping dst, returning a count of the number of positive integers contained in src. The baseline Y86 version of the ncopy function is in sim/pipe/ncopy.ys. The file [login to view URL] contains a copy of the HCL code for PIPE, along with a declaration of the constant value IIADDL. Your task in this lab is to modify [login to view URL] and [login to view URL] with the goal of making [login to view URL] run as fast as possible. You will be handing in two files: [login to view URL] and ncopy.ys. Each file should begin with a header comment with the following information: A high-level description of your code. In each case, describe how and why you modified your code. Coding Rules: You are free to make any modifications you wish, with the following constraints: Your [login to view URL] function must work for arbitrary array sizes. You might be tempted to hardwire your solution for 64-element arrays by simply coding 64 copy instructions, but this would be a bad idea because we will be grading your solution based on its performance on arbitrary arrays. Your [login to view URL] function must run correctly with YIS. By correctly, we mean that it must correctly copy the src block and return (in %eax) the correct number of positive integers. The assembled version of your ncopy file must not be more than 1000 bytes long. You can check the length of any program with the ncopy function embedded using the provided script [login to view URL]: unix> ./[login to view URL] < [login to view URL] Your [login to view URL] must pass the regression tests in ../y86-codeand ../ptest (without the -il flags that test iaddl and leave). Other than that, you are free to implement the iaddl instruction if you think that will help. You may make any semantics preserving transformations to the [login to view URL] function, such as reordering instructions, replacing groups of instructions with single instructions, deleting some instructions, and adding other instructions. You may find it useful to read about loop unrolling in Section 5.8 of CS:APP2e.
N° de projet : 7613782

Concernant le projet

Projet à distance
Actif à il y a 9 ans

Cherchez-vous à gagner de l'argent ?

Avantages de faire une offre sur Freelancer

Fixez votre budget et vos délais
Soyez payé pour votre travail
Surlignez votre proposition
Il est gratuit de s'inscrire et de faire des offres sur des travaux
Avatar de l'utilisateur
I am a technical engineer with four years print industry experience. I am involved deeply in print performance optimizations and big O notation for code logic. Looking forward to work in this project.
$11 USD en 5 jours
0,0 (0 commentaires)
0,0
0,0

À propos du client

Drapeau de UNITED STATES
Fremont, United States
0,0
0
Méthode de paiement vérifiée
Membre depuis mars 11, 2015

Vérification du client

Merci ! Nous vous avons envoyé un lien par e-mail afin de réclamer votre crédit gratuit.
Une erreur a eu lieu lors de l'envoi de votre e-mail. Veuillez réessayer.
Utilisateurs enregistrés Total des travaux publiés
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Chargement de l'aperçu
Permission donnée pour la géolocalisation.
Votre session de connexion a expiré et vous avez été déconnecté. Veuillez vous connecter à nouveau.