Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

@παπι

Δεν πρόκειται για παράλληλη υλοποίηση σε GPU αλλα για υλοποίηση HW. Το GPGPU programming δεν ειναι πανάκεια για πολλούς λόγους, πχ αν χρειάζεσαι ενα real-time processing σύστημα που πρέπει να εχει low latency και το αποτέλεσμα εγγυημένα πάντα στον ιδιο χρόνο (ντετερμινιστικο) τοτε κοιτάς προς αρχιτεκτονικές υλοποιήσεις σε ASIC/FPGA διότι σου προσφέρουν πολυ περισσότερους DOF αναφορικά με την σχεδίαση.

 

@gon1332

Το κανει ο HLS αυτο ετσι και αλλιώς μεταξύ άλλων optimizations που κανει.

Δημοσ.

Θές να μας πείς τον αλγόριθμο που υλοποιείς με το παραπάνω block και τον κώδικα απο το Triangles μήπως σκεφτούμε κάτι διαφορετικό?

Δημοσ.

Θές να μας πείς τον αλγόριθμο που υλοποιείς με το παραπάνω block και τον κώδικα απο το Triangles μήπως σκεφτούμε κάτι διαφορετικό?

To κομμάτι αυτό ανήκει σε έναν αλγόριθμο βασισμένο στον Delaunay τριγωνισμό και πολύ συνοπτικά είναι μέρος μια συνάρτησης που ελέγχει κατά πόσο μια ακμή είναι έγκυρη ή όχι βάσει του θεωρήματος του Thales προκειμένου να να δούμε αν ο τριγωνισμός είναι σωστός ή όχι. Ο κώδικας είναι μέρος έρευνας οπότε όχι δεν μπορώ να τον κάνω post αλλά δε χρειάζεται κιόλας.

Δημοσ.

To κομμάτι αυτό ανήκει σε έναν αλγόριθμο βασισμένο στον Delaunay τριγωνισμό και πολύ συνοπτικά είναι μέρος μια συνάρτησης που ελέγχει κατά πόσο μια ακμή είναι έγκυρη ή όχι βάσει του θεωρήματος του Thales προκειμένου να να δούμε αν ο τριγωνισμός είναι σωστός ή όχι. Ο κώδικας είναι μέρος έρευνας οπότε όχι δεν μπορώ να τον κάνω post αλλά δε χρειάζεται κιόλας.

 

Δεκτό ότι δεν μπορείς να κάνεις ποστ, τώρα στο ότι δεν χρειάζεται θα διαφωνήσω αλλά οκ

Δημοσ.

Μήπως θα μπορούσες να βάλεις μερικές τιμές...έχω κάτι στο μυαλό μου και θέλω να το επιβεβαιώσω

έστω,

(mA1, mA2, mA3, mA4,...,mAn) = (3, 1, 3, 0,...,0)

(mB1, mB2, mB3, mB4,...,mBn) = (0, 1, 2, 0,...,0)

(mC1, mC2, mC3, mC4,...,mCn) = (1, 2, 0, 0,...,0)

και MAX_NO_TRIANGLES= 800

 
Δημοσ.

Οπότε εαν δεν κάνω λάθος θα είναι 

if (mA1 =1 || mA2=1 || mA3=1) {

if (mA1 =3 || mA2=3 || mA3 =3)

............

τότε θα μπορουσες να το γράψεις

if (mA1 =vx ||mA1 =vy ||mA1 =vz) && (mA2 =vx ||mA2 =vy ||mA2 =vz) && (mA3 =vx ||mA3 =vy ||mA3 =vz) 

Δημοσ.

Οπότε εαν δεν κάνω λάθος θα είναι 

if (mA1 =1 || mA2=1 || mA3=1) {

if (mA1 =3 || mA2=3 || mA3 =3)

............

τότε θα μπορουσες να το γράψεις

if (mA1 =vx ||mA1 =vy ||mA1 =vz) && (mA2 =vx ||mA2 =vy ||mA2 =vz) && (mA3 =vx ||mA3 =vy ||mA3 =vz) 

Όχι δεν είναι το ίδιο.

Δημοσ.

Εγώ βασικά ρώτησα για τον κώδικα μήπως ο έλεγχος μπορούσε να γίνει μέσα απο το αντικείμενο Triangles και γλύτωνες αυτές τις if. Θα μπορούσε να γίνει κάτι τέτοιο? 

Δημοσ.

Επειδή το μπλοκ είναι ολόιδιο με Java , όλο ξεχνάω ότι είναι c++ , δεν έχω ασχοληθεί με c++ και τώρα που είπες struct το έψαξα λίγο και είδα. Το σχόλιο που έκανα είχε την λογική ότι αν ήταν μία java κλάση θα μπορούσε να υλοποιήσεις μία μέθοδο που θα πέρναγες τον int και θα έκανε έλεγχο της ισότητας μέσα στην κλάση οπότε θα ήταν πιο ξεκάθαρο το μπλοκ του κώδικα.

 

sorry για το μπλέξιμο

Δημοσ.

@defacer

Ο τρόπος με τα continue είναι όντως πιο pleasing to the eye αλλά δεν έχει κανένα effect στο resulting dataflow structure (ο HL synthesizer προφανώς κάνει το ίδιο optimization στο translation)

 

"Κομψό τρόπο" έγραψες, δεν πήγε το μυαλό μου ότι θα φτάναμε να λέμε για uops per iteration και throughput :D

 

Που είναι πολύ πιο ενδιαφέρον βέβαια αλλά δυστυχώς είμαι στο δρόμο αυτές τις μέρες και δε μπορώ να ακολουθήσω.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...