Millisecond delay in RISC-V sample project is wrong

When experimenting with the RISC-V sample project, I noticed that the millisecond delay is wrong. When I fill in 500ms, the blinking goes really slow (one blink per 6~10 seconds):

    while(1){
        /* insert 500 ms delay */
        delay_1ms(500);

        /* toggle the LED */ 
        gpio_bit_write(GPIOA, GPIO_PIN_7, (bit_status)(1-gpio_input_bit_get(GPIOA, GPIO_PIN_7)));
        
        /* insert 500 ms delay */
        delay_1ms(500);
    }

I have to change it into ~ 50ms to get it blinking once per second.

This is the complete main.c file:

/*!
    \file  main.c
    \brief running led demo
    \version 2019-06-05, V1.0.0, demo for GD32VF103
*/

/*
    Copyright (c) 2019, GigaDevice Semiconductor Inc.
    [...]
*/

#include "gd32vf103.h"
#include "gd32vf103c_start.h"
#include "systick.h"

/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{  
    /* enable the LED clock */
    rcu_periph_clock_enable(RCU_GPIOA);
    /* configure LED GPIO port */
    gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);

    gpio_bit_reset(GPIOA, GPIO_PIN_7);
    
    while(1){
        /* insert 500 ms delay */
        delay_1ms(500);

        /* toggle the LED */ 
        gpio_bit_write(GPIOA, GPIO_PIN_7, (bit_status)(1-gpio_input_bit_get(GPIOA, GPIO_PIN_7)));
        
        /* insert 500 ms delay */
        delay_1ms(500);
    }
}