RISC-V Toolchain and Compiler Optimization Techniques

بواسطة: edX

Overview

As RISC-V has made it easier to bring up processor chipsets, the need for compiler engineers in the RISC-V ecosystem has increased. There is an implicit need for toolchain experts who can help RISC-V vendors gain an edge over competitors with their expertise in compilation technologies. Learning about internals of the toolchain, building and debugging RISC-V applications will allow you to work with thousands of companies that are building the latest hardware technologies.

This course is designed for engineers working with RISC-V vendors who are designing their own architectures, and those using RISC-V development boards to build applications. It is also useful for RISC-V application developers looking to improve performance or reduce the code size of their applications, toolchain developers, compiler engineers/performance engineers, and computer science students aspiring to major in systems software.

This course begins with an introduction to the compiler toolchain and concepts of cross-compilation. You will learn how to use popular compiler toolchains (both LLVM and GCC) to build RISC-V applications. You will also learn how to debug toolchain issues and what resources to consult when you need help. This course will help you optimize applications for code size or performance and gain an understanding of the demands of applications with instrumentation techniques.

The course prepares you to apply to in-demand job opportunities like toolchain engineers or systems performance engineers as most large organizations have a difficult time finding engineers who are good with performance optimizations. This is a beginner-level course to get you started with optimizing data center applications and mobile applications for performance. It enables you to work in startups building RISC-V-based devices and IOT systems that are resource-constrained. The course will also help undergraduate students get started with compiler toolchains and equip them with skills to optimize applications using compiler technologies.

Syllabus

  • Welcome!
  • Chapter 1. Compiler toolchains
  • Chapter 2. Introduction to compiler optimizations
  • Chapter 3. Building RISC-V Applications
  • Chapter 4. Debug toolchain issues
  • Final Exam (verified track only)

Taught by

Aditya Kumar

RISC-V Toolchain and Compiler Optimization Techniques
الذهاب الي الدورة

RISC-V Toolchain and Compiler Optimization Techniques

بواسطة: edX

  • edX
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • intermediate
  • English
8.1.2PHP Version243msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (153ms)
    • Application (89.52ms)
    • 1 x Booting (62.99%)
      153.36ms
      1 x Application (36.77%)
      89.52ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.73ms
      • select * from `courses` where `slug_ar` = 'risc-v-toolchain-and-compiler-optimization-techniques' limit 1
        3.54ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. risc-v-toolchain-and-compiler-optimization-techniques
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-10 01:13:43' where `id` = 920
        360μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-10 01:13:43
        • 1. 920
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (1)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (17) and `institutions`.`deleted_at` is null
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 914 limit 1
        190μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 914
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        JlFiyV6E7sHK6upuArmKVgFjTD6iEfFECxQDXQ3a
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/risc-v...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/risc-v-toolchain-and-compiler-optimization-techniques
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.12.149.57" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.12.149.57" ] "cf-ray" => array:1 [ 0 => "92de621d2ebeeaf3-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.12.149.57" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.12.149.57" "HTTP_CF_RAY" => "92de621d2ebeeaf3-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "14498" "REMOTE_ADDR" => "172.71.254.73" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/risc-v-toolchain-and-compiler-optimization-techniques" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744247623.493 "REQUEST_TIME" => 1744247623 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Thu, 10 Apr 2025 01:13:43 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IldiL3BlZGFkcjg1UlMwZldUZ0F5Smc9PSIsInZhbHVlIjoiUUF1c21xemRuSkpzUWI1Yzh2MHhGck8rNkp3YmwrbVZUYVM3bWIraXU2eXhDdUdwakpHVnBXdHh6eVp1MTI3OHBpUWZPcUNWVkVZM0JEdFpJeDQySmRsanRsM0ZtQ29QeU02QXBHWnJDWE9DMjFXM2hFMTFuT0ptSnVWSW1SdGMiLCJtYWMiOiIzNThkMDRiNzJiZjcyNjI3Njg5ZjY0ZTJiN2JiYjEzYmU4NzA5NTg1Y2JjMjk3NTI5ZjA4YzMyNzc1OTgwNWMwIiwidGFnIjoiIn0%3D; expires=Thu, 10 Apr 2025 03:13:43 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IldiL3BlZGFkcjg1UlMwZldUZ0F5Smc9PSIsInZhbHVlIjoiUUF1c21xemRuSkpzUWI1Yzh2MHhGck8rNkp3YmwrbVZUYVM3bWIraXU2eXhDdUdwakpHVnBXdHh6eVp1MTI3OHBpUWZPc" 1 => "laravel_session=eyJpdiI6IkZYN25sKzFIeDk4cnJGWlJzNWZFWmc9PSIsInZhbHVlIjoiN1MvTXhTaENVTytQMHI5TWJTUHhmWnpraDgyUkZjREd2ekU3MjFwakN4TTNsYWQ3Nm1PUHBUaXNMSnV2NEtiMVE1MHJDeWFvVjh1WmtaQnc1SEpaNXFhd3dYZkZpM21UZXZtMXZ5R1BCWHpEWW9CVVUwNXU4ejZER0ZreVNGSHUiLCJtYWMiOiI1OWYzMDQyNDU1OGFmYzQ3YTc5NDM4OGYzZjYxMzFiMzc2NjIwN2RkYmVmN2NlOTEwNGU2NjU3Njc2ZmE5MTNhIiwidGFnIjoiIn0%3D; expires=Thu, 10 Apr 2025 03:13:43 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkZYN25sKzFIeDk4cnJGWlJzNWZFWmc9PSIsInZhbHVlIjoiN1MvTXhTaENVTytQMHI5TWJTUHhmWnpraDgyUkZjREd2ekU3MjFwakN4TTNsYWQ3Nm1PUHBUaXNMSnV2NEtiMVE1" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IldiL3BlZGFkcjg1UlMwZldUZ0F5Smc9PSIsInZhbHVlIjoiUUF1c21xemRuSkpzUWI1Yzh2MHhGck8rNkp3YmwrbVZUYVM3bWIraXU2eXhDdUdwakpHVnBXdHh6eVp1MTI3OHBpUWZPcUNWVkVZM0JEdFpJeDQySmRsanRsM0ZtQ29QeU02QXBHWnJDWE9DMjFXM2hFMTFuT0ptSnVWSW1SdGMiLCJtYWMiOiIzNThkMDRiNzJiZjcyNjI3Njg5ZjY0ZTJiN2JiYjEzYmU4NzA5NTg1Y2JjMjk3NTI5ZjA4YzMyNzc1OTgwNWMwIiwidGFnIjoiIn0%3D; expires=Thu, 10-Apr-2025 03:13:43 GMT; path=/XSRF-TOKEN=eyJpdiI6IldiL3BlZGFkcjg1UlMwZldUZ0F5Smc9PSIsInZhbHVlIjoiUUF1c21xemRuSkpzUWI1Yzh2MHhGck8rNkp3YmwrbVZUYVM3bWIraXU2eXhDdUdwakpHVnBXdHh6eVp1MTI3OHBpUWZPc" 1 => "laravel_session=eyJpdiI6IkZYN25sKzFIeDk4cnJGWlJzNWZFWmc9PSIsInZhbHVlIjoiN1MvTXhTaENVTytQMHI5TWJTUHhmWnpraDgyUkZjREd2ekU3MjFwakN4TTNsYWQ3Nm1PUHBUaXNMSnV2NEtiMVE1MHJDeWFvVjh1WmtaQnc1SEpaNXFhd3dYZkZpM21UZXZtMXZ5R1BCWHpEWW9CVVUwNXU4ejZER0ZreVNGSHUiLCJtYWMiOiI1OWYzMDQyNDU1OGFmYzQ3YTc5NDM4OGYzZjYxMzFiMzc2NjIwN2RkYmVmN2NlOTEwNGU2NjU3Njc2ZmE5MTNhIiwidGFnIjoiIn0%3D; expires=Thu, 10-Apr-2025 03:13:43 GMT; path=/; httponlylaravel_session=eyJpdiI6IkZYN25sKzFIeDk4cnJGWlJzNWZFWmc9PSIsInZhbHVlIjoiN1MvTXhTaENVTytQMHI5TWJTUHhmWnpraDgyUkZjREd2ekU3MjFwakN4TTNsYWQ3Nm1PUHBUaXNMSnV2NEtiMVE1" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "JlFiyV6E7sHK6upuArmKVgFjTD6iEfFECxQDXQ3a" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/risc-v-toolchain-and-compiler-optimization-techniques" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]