Presentation is loading. Please wait.

Presentation is loading. Please wait.

Associative Functions implemented on ClearSpeed CSX600

Similar presentations


Presentation on theme: "Associative Functions implemented on ClearSpeed CSX600"— Presentation transcript:

1 Associative Functions implemented on ClearSpeed CSX600
Mike Yuan

2 Introduction Important for ATC applications
asc.cn, asc.h, asc_asm.cn, carlot.h and carlot_n Overview - PickOne: get, next - AnyResponder: any, ascNany - MAX/MIN: max_int, min_int, max_float, min_float Three versions Pure Cn (preferred): all functions in asc.cn Assembler: max, min in asc_asm.cn Mixed Cn and assembler: get, next, ascAny, ascNany in asc_asm.cn

3 Compile and run For Cn versions
-bash-3.00$ cscn -o test1.csx carlot_next.cn asc.cn -bash-3.00$ csrun test1.csx For mixed and assembler versions -bash-3.00$ cscn -o test1.csx carlot_next.cn asc_asm.cn

4 Get Signature: mono short get (poly const char mask)
Return the first PE number of the enabled PEs

5 Get example codes //set the mask to only PE's with a 1991 model car.
if (mycarlot.year == 1991) { mask = 1; } //get first car with the year 1991 ONE = get(mask); //set the ONE to color M if (get_penum() == ONE) mycarlot.color = 'M';

6 Get results produced Before: 1990 L F 1 1991 R H 1 1992 O T 0 After:
M H

7 Next Signature: mono short next (poly const char mask, short ONE)
Return the PE number of the next PE in the mask

8 Next example codes //get NEXT car with 1991 year.
ONE = next(mask,ONE); //set the second one to color N if (get_penum() == ONE) { mycarlot.color = 'N'; } //skip to the fourth carwith year 1991 //set the forth car with year 1991 to Z mycarlot.color = 'Z';

9 Next results produced Before: 1991 G D 1 19 91 L H 1 1991 Y D 1 After:
N D L H Z D

10 any Signature: mono char any (poly int condition);
Test the condition condition on all of the enabled PEs and returns true if any of the enabled PEs return true

11 Example codes //set mask if (mycarlot.year == 1991) { mask = 1; }
//turn off PE's not in mask if (mask) //if there are any red and 1991 cars if(any(mycarlot.color == 'R')) //all cars turn to color T mycarlot.color = 'T';

12 any results Before there is a: R D After T H T D

13 ascNany Signature: mono char ascNany (poly int condition);
Test the condition condition on all of the enabled PEs and returns true if all of the enabled PEs return false

14 ascNany (cont) if(ascNany(mycarlot.color=='NONE')) Example codes:
{ mycarlot.onlot = 0; } Results T H T D

15 Max for int/float/short
Signature of max: int max_int(poly int value) Return the maximum instance of a signed poly int value

16 Min for int/float/short
Signature of min: int min_int(poly int value) Return the minimum instance of a signed poly int value

17 Max/Min (cont) Example codes poly int index = get_penum();
int max_index, min_index; max_index = max_int(index); printf ("The maximum of PE number is: %d\n", max_index); min_index = min_int(index); printf ("The minimum of PE number is: %d\n", min_index); Results The maximum of PE number is: 95 The minimum of PE number is: 0

18 Timing Record cycles of operations Example codes: // min_int
start_time = get_cycles_ila(); min_int_result = min_int(int_value); elapsed_time = get_cycles_ila() - start_time; printf("min_int Result: %2d Time: %4u\n",min_int_result, elapsed_time);

19 Timing (cont) Results: min_int Result: 0 Time: 6377
run csreset -v and the frequency is displayed Core clock frequency: Processor 0: MHz, Processor 1: MHz 6377/210M= ms

20 Random function Generate random data in PE
Randp() generates random numbers between 0 and RAND_MAX Example codes: poly int rand_num = 0; rand_num = randp(); plane.speed[i] = (scale * (rand_num*( )/RAND_MAX + 30));

21 Random number (cont) Problem: average is median: (600-30)/2=285, not 250 Use Poisson distribution or Weibu distribution to get average=250

22 Handle timer Do timing in host for accuracy
Two semaphores sem_start, sem_end between host and PE Host signals sem_start and records time PE waits for it and then execute PE signals sem_end Host waits for sem_end

23 Handle timer (cont) Host records time How much time spent?
If > 0.5s, error Else if< 0.5s, wait for rest of time

24 Task scheduling One .csx file A count for every 0.5s
If count=8, do terrain avoidance If count=16, do conflict detection and correlation


Download ppt "Associative Functions implemented on ClearSpeed CSX600"

Similar presentations


Ads by Google