group Matrix blocks and also order by Matrix field for a given block
This is a great chance to use the group filter.

First, get all your matrix blocks as an array:

{% set talkBlocks = entry.talks.find() %}


Then group them by type:

{% set talksByCategories = talkBlocks|group('type') %}


At this point, you have an associative array where the keys are the block types, and the values are arrays of the blocks with that type. So talksByCategories.workshop or talksByCategories['workshop'] will be the workshops.

You can group the workshops by round:

{% set workshopsByRound = talksByCategories.workshop|group('workshopRound.value') %}


You should check that there were any workshops first (twig's defined test):

{% if talksByCategories['workshop'] is defined %} ...