Error: identifier "atomicAdd" is undefined

I am using arch _sm20 in visual studio 2015 with my GeForce 820M
(compute capability 2.1).
This is my kernal:

global void kernal_compute_denom(int N, double* d_y, int* denom) {
int x_id = blockIdx.xblockDim.x + threadIdx.x;
int y_id = blockIdx.y
blockDim.y + threadIdx.y;
int N2 = NN;
double lhs = 0;
double rhs = 0;
if (x_id < N && y_id < N && y_id >0) {
for (int j = 0; j < N; j++) {
lhs += d_y[j * N2 + x_id * N + y_id - 1];
rhs += d_y[x_id * N2 + j * N + y_id];
}
}
if (y_id == 0) {
for (int j = 0; j < N; j++) {
lhs += d_y[j * N2 + x_id * N + N - 1];
rhs += d_y[x_id * N2 + j * N];
}
}
int value = (int) (lhs - rhs)
(lhs - rhs);

atomicAdd(denom, value);
}

My project succesfully runs with the atomicAdd function commented.
I have checked the forums and have double checked the sm_20 architecture flag.
Is there something I might be doing wrongly.?
(changing value with a random integer number doesn’t help!)

Thanks.