The definition can definitely vary, for example AWS defines vCPU as:
AWS: Each vCPU is a thread of a CPU core, except for ...
Similarly, Azure and Google also tend to match a vCPU to a hyper-thread rather than always 1:1 with an actual core.
Google: For the n1 series of machine types, a vCPU is implemented as a single hardware hyper-thread on one of the available CPU Platforms.
Generally, vCPU is used as a metric for simple comparison of machines within a vendor's range of machines.
It may also used a cost equivalence factor (e.g. within the same machine type family, a 4 vCPU machine would be twice the cost of 2 vCPU machine)
How well a certain load can fully utilise a machine's resources, and how performance between different machine families and vendors, depends on multiple factors. So if it's important to know for sure then it would be best to run some real tests; otherwise you can take the vCPU count as an approximate indicator.