For the Walnut-Sugar Topping:
2 cups chopped walnuts
½ cup granulated sugar
For the Cake:
3 cups all-purpose flour
2 cups granulated sugar
6 tablespoons unsweetened cocoa powder
2 teaspoons baking powder
1 teaspoon salt
2 cups cold water
¾ cup vegetable oil
2 tablespoons white vinegar
2 teaspoons vanilla extract
For the Cream Cheese Filling:
2 (8-ounce packages) cream cheese, at room temperature
2/3 cup granulated sugar
½ teaspoon salt
1. Preheat oven to 350 degrees F. Grease a 9x13-inch baking pan; set aside.
2. Make the Walnut-Sugar Topping: Combine the chopped walnuts and the sugar in a small bowl; set aside.
3. Make the Cake Batter: In a large bowl, whisk together the flour, sugar, cocoa powder, baking powder, and salt; set aside. In a medium bowl, whisk together the water, vegetable oil, vinegar, and vanilla extract. Pour the wet ingredients into the flour mixture and, using a rubber spatula or wooden spoon, mix together until just combined and there are no traces of dry ingredients. Set aside.
4. Make the Cream Cheese Filling: Using an electric mixer, beat the cream cheese on medium speed until soft and smooth, about 3 minutes. Add the sugar and continue mixing until light and fluffy, another 2 to 3 minutes. Add the eggs and the salt and beat until thoroughly combined and smooth.
4. Pour half of the cake batter into the prepared pan. Slowly pour all of the cream cheese filling over top, trying to distribute it as evenly as possible (do not try to spread it after you pour it). Pour the remaining cake batter over top of the cream cheese filling. Sprinkle the top of the cake with the walnut-sugar mixture.
5. Bake for 35 minutes, or until a toothpick inserted in the center comes out with moist crumbs attached. Let cool completely before serving.