Preheat oven to 350° F. Grease a casserole 13x9 inch casserole dish and set aside.
Bring a large pot of water to boil and add sweet potatoes. Cook the potatoes for about 15 minutes or until fork tender. Drain the water from the potatoes.
Add the sugar, butter, half and half, eggs, cinnamon, nutmeg, cardamom and vanilla extract to the potatoes. Use a hand mixer to blend the potatoes until smooth. A few lumps are okay.
Add the sweet potato mixture to the casserole dish.
In a small bowl, add the topping ingredients. Stir well to combine. Sprinkle the topping over the top of the sweet potatoes.
Bake uncovered in the preheated oven for around 30 minutes or until the topping is golden brown.