Preheat the oven to 350 degrees F.
Grease and flour three 7 or 8 inch cake pans.
In the bowl of a stand mixer, combine the oil and sugar.
Add the eggs one at a time, mixing between each addition.
Mill the flour and sift it. You should have 2 ½ cups after sifting.
In a separate bowl, combine the flour, cinnamon, salt, and baking soda.
Slowly add the dry ingredients to the wet ingredients and combine.
Add the shredded carrots and gently combine.
Evenly divide the cake batter into the prepared pans (about 2 cups of batter per pan) and bake for 22-28 minutes, or until a toothpick inserted in the middle comes out clean.
Allow to cool for 15 minutes, then remove from the pans to cool on a wire rack.
Prepare the icing by beating the cream cheese and butter together until fluffy.
Add the vanilla and powdered sugar and beat for several minutes until light and fluffy.
Ice the cake as desired and top with the walnuts if using.
Tastes best after being refrigerated!