$G$ function
The graphic you reference seems to describe the $G$ function of BLAKE - and not of BLAKE2b. Note not only the different rotations, but also the addition of the constants $C_{\sigma_r(2i+1)}$ which are not present in BLAKE2 anymore. Both of these match the definition of the $G$ function of BLAKE, as per the official documentation.
As for BLAKE2: Do be careful that there are two versions of BLAKE2. BLAKE2s is for platforms with 8-32 bit hardware, BLAKE2b for platforms with 64 bit hardware.
BLAKE2s uses rotations by 16, 12, 8 and 7 bits respectively - but without the constant addition - so will look very similar (but not equal!) to your graphic.
BLAKE2b on the other hand uses rotations by 32, 24, 16 and 63 bits respectively, which is what the referenced source code implements.
For details on BLAKE2, check section 2.4 of the official BLAKE2 documentation (which seems to focus on changes from BLAKE to BLAKE2), or its RFC which provides a full description.
In the repository you link to, they only provide a C# reference implementation of BLAKE2b. You can however see the different implementations by comparing the C reference implementations of BLAKE2b and BLAKE2s:
BLAKE2s' $G()$ function
#define G(r,i,a,b,c,d) \
do { \
a = a + b + m[blake2s_sigma[r][2*i+0]]; \
d = rotr32(d ^ a, 16); \
c = c + d; \
b = rotr32(b ^ c, 12); \
a = a + b + m[blake2s_sigma[r][2*i+1]]; \
d = rotr32(d ^ a, 8); \
c = c + d; \
b = rotr32(b ^ c, 7); \
} while(0)
BLAKE2b's $G()$ function:
#define G(r,i,a,b,c,d) \
do { \
a = a + b + m[blake2b_sigma[r][2*i+0]]; \
d = rotr64(d ^ a, 32); \
c = c + d; \
b = rotr64(b ^ c, 24); \
a = a + b + m[blake2b_sigma[r][2*i+1]]; \
d = rotr64(d ^ a, 16); \
c = c + d; \
b = rotr64(b ^ c, 63); \
} while(0)
Permutations
The $\sigma$ you ask about is a family of permutations, see e.g. section 2.7 of the BLAKE2 RFC.