2009-12-24 14 views
5

Tengo una entrevista en el plazo de una semana para un puesto de nivel de entrada que implica la programación en CUDA (con suerte con C).Preguntas de la entrevista sobre la Programación CUDA?

Me preguntaba si alguien puede sugerir algunas preguntas de la entrevista que puedo esperar durante la entrevista.

He pasado por la guía de programación oficial pero no soy tan conveniente en este momento.

Gracias.

+0

¿Has intentado escribir algo no trivial? ¿Simulación de N-cuerpos o algo así? CUDA requiere que planee el acceso cooperativo a la memoria cuidadosamente para obtener algún tipo de rendimiento. Sin ninguna experiencia práctica, te derrotarán. – drxzcl

+0

Lamentablemente, no. ¡La simulación de N-cuerpos y de la calaña es demasiado compleja para mí! Pero he estado dando vueltas con CUDA durante aproximadamente 4-5 meses.He escrito varios programas para comprender bien las rutinas y la arquitectura. – Gitmo

+0

No me refiero específicamente a N-body, cualquier programa que explote la cooperación de hilos sería una ventaja. De lo contrario, no obtendrá ningún aumento de rendimiento significativo de la GPU. N-body es solo un ejemplo (simple), pero otros también están bien. La multiplicación de matrices, la evaluación de matrices de distancia, ese tipo de cosas. Si intenta aprender CUDA memorizando la guía del usuario, se bloqueará y se quemará. – drxzcl

Respuesta

16

Algunas preguntas que creo que usted debe preparar son:

  • ¿Cuántos tipos diferentes de recuerdos están en una GPU?
  • ¿Qué significa unir/sin unir?
  • ¿Se puede implementar un kernel de transposición de matriz?
  • ¿Qué es una urdimbre?
  • ¿Cuántas deformaciones se pueden ejecutar simultáneamente dentro de un multiprocesador?
  • ¿Cuál es la diferencia entre un bloque y un hilo?
  • ¿Puede el hilo comunicarse entre ellos? y bloques?
  • ¿Puede describir cómo funciona un caché?
  • ¿Cuál es la diferencia entre la memoria compartida y los registros?
  • ¿Qué algoritmos tienen un mejor rendimiento en la GPU? datos enlazados o unidos a la CPU?
  • ¿Qué pasos realizará al puerto de una aplicación a cuda?
  • ¿Qué es una barrera?
  • ¿Qué es una corriente?
  • ¿Puede describir qué significa ocupación de un kernel?
  • ¿Qué significa estructura de matriz frente a matriz de estructuras?
+0

@fabrizioM ¡Muchas gracias! Eso fue de hecho muy útil. Puedo responder la mayoría de estos :) Sentirse un poco seguro ahora. – Gitmo

+7

Se supone que es una entrevista, no un concurso. Desea preguntar algo que les obligue a mostrar cómo giran las ruedas en su cabeza, no verificar que leyeron la guía del usuario. – drxzcl

3

Si se trata de un papel científico y luego esperar preguntas sobre el punto flotante y precisión numérica, en particular, usted debe buscar en la muestra reducción en el SDK de NVIDIA, ya que ilustra una carga completa de los puntos en el post de Fabricio también.

5

"Tienes N vectores de longitud M (N >> M). Dime cómo diseñar un núcleo para evaluar la matriz de distancia. Presta especial atención a la forma en que el problema se subdivide y al forma en que la cooperación de hilos se puede utilizar para mejorar la ocupación.

¿Cómo cambiaría su respuesta a esta pregunta si M >> N? "

La idea aquí no es hacerte escribir código, sino hacerte pensar en voz alta. Esto muestra que realmente sabe cómo usar la tecnología GPGPU y no solo está regurgitando la guía del usuario.

Cuestiones relacionadas