Two parts: a first one on the theoretical content of the course. You are expected to be able to explain any mecanism presented in the course (SIMD, cache, multithreading, etc.) You can get some inspiration from the open questions asked in the slides.
The second part will be on the laboratories: RiSC16 assembly code, dsPIC33 C code and some assembly code understanding.
For both parts, you cannot have any supporting document with you.
Now available on http://uv.ulb.ac.be, please go and check if you can access
Labs take place in the UA5.217 lab (ULB, Solbosh, building U).
Labs are divided into three parts:
- 4 labs about the RiSC16
- 1 lab about the dSPic33
- 1 TIS-100 lab
- 3 labs about SIMD instructions in generic x86_64 computers
The goals of these labs are:
- Study and use three microprocessor architectures
- Learn to deal with a microprocessor documentation
Lab 1-4: RiSC16 labs assignements:
- Section 8 and 9 of lab 1--2, deadline: one week after lab 2
- Monday group deadline : February 26th
- Wednesday group deadline : March 7th
- Thursday group deadline : March 1rst
- Section 301 of lab 3, deadline: one week after lab 3
- Monday group deadline : March 5th
- Wednesday group deadline : March 14th
- Thursday group deadline : March 8th
Lab 5: dsPIC33
- No assignment
- Use MPLab 8.92
- All the source files are aslo available on the network drive.
- C30 compiler for MPLab 8.92: http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc30-v3_31-windows-i... (located at http://www.microchip.com/development-tools/downloads-archive)
Lab 6: TIS-100
- Monday group deadline : March 19th
- Wednesday group deadline : April 4th
- Thursday group deadline : March 29th
Lab 7-9: SIMD labs assignments:
- For labs 7 and 8, the assignement is the C and ASM (SIMD) implementation alongside the commented benchmarking of both solutions (i.e. a time comparison of your implementations). As a bonus, you can also compare the performance of the buffer vs streaming file handling and aligned vs unaligned memory.
- As usual, the deadline is one week after the lab.
- List of SIMD instructions: http://www.felixcloutier.com/x86/
- image conversion of raw image to other format using ImageMagick : convert -size 1024x1024 -depth 8 gray:in.raw out.bmp
- This online tool can also be useful: http://rawpixels.net/
- To view a file as hexadecimal in vim:
:%!xxd And to restore it: :%!xxd -r
- Here is a snippet substracting 42 from a vector:
unsigned char* foo = malloc(sizeof(unsigned char) * 16); memset(foo, 42, 16); __asm__( /* somehow put foo inside xmm3 and your output in xmm2 */ "psubb %%xmm3, %%xmm2\n" /* outputs, inputs, clobbers*/ );
- pthread example : https://gist.github.com/parastuffs/a7818b1ff46de40b95949943fbd53c8b
Only pdf and .c/.h/.txt/.asm files will be accepted for these assessments. Other file formats will be silently ignored.