Cuestionario vinculado a una guía · Medio Nivel

Cuestionario sobre el lenguaje Triton para kernels de GPU personalizados

Revise el modelo de kernel a nivel de bloque de Triton, el manejo de límites enmascarados, la configuración de lanzamiento y la necesidad de una validación del rendimiento medido.

Pregunta 1 de 8

¿Cómo describe Triton gran parte del trabajo de la GPU en comparación con un kernel CUDA hilo por hilo?

Vista previa de cada pregunta8 preguntas

Las respuestas y explicaciones aparecen a medida que realiza el cuestionario.

  1. ¿Cómo describe Triton gran parte del trabajo de la GPU en comparación con un kernel CUDA hilo por hilo?
    • Como operaciones sobre bloques lógicos de elementos.
    • Como una única instrucción de CPU para el tensor completo
    • Como un núcleo por valor individual
    • Como consulta SQL sobre la memoria de la GPU
  2. ¿Por qué los núcleos vectoriales enmascaran su bloque final?
    • Para forzar que la última ficha lance menos deformaciones
    • Para evitar cargas o almacenes más allá de la extensión tensor válida
    • Para rellenar el tensor subyacente hasta que su longitud sea divisible por el tamaño del bloque
    • Para omitir toda la instancia final del programa cuando queda un bloque parcial
  3. ¿Qué identifica comúnmente tl.program_id?
    • El ordinal del dispositivo GPU que compiló la función.
    • El número total de deformaciones en una instancia de programa.
    • El índice de la instancia del programa lógico activo en la cuadrícula de lanzamiento.
    • El desplazamiento del elemento producido por tl.arange dentro de esa instancia
  4. ¿Por qué un núcleo de matriz en mosaico puede reducir el tráfico de memoria?
    • Reduce el número matemático de elementos de salida.
    • Elimina todo acceso a la memoria global.
    • Hace que todas las matrices sean contiguas automáticamente.
    • Reutiliza valores cargados en múltiples cálculos.
  5. ¿Qué debería hacer un punto de referencia con el tiempo de compilación JIT?
    • Cuente la compilación solo como ejecución del dispositivo
    • Separe la compilación de primera llamada del tiempo de ejecución del kernel de estado estable
    • Excluir todo calentamiento y sincronización incondicionalmente
    • Supongamos que cada forma usa el mismo binario compilado.
  6. ¿Por qué un kernel Triton podría ser más lento que la operación de una biblioteca?
    • Los kernels personalizados no pueden utilizar el mosaico de memoria
    • Triton siempre se ejecuta en una CPU
    • Es posible que la biblioteca ya utilice núcleos optimizados y que la sobrecarga de lanzamiento pueda dominar
    • Los núcleos de GPU nunca se benefician de la fusión
  7. ¿Qué puede cambiar los resultados numéricos entre Triton y una implementación de referencia?
    • El número de comentarios de código.
    • El pedido de Python solo importa
    • El nombre del archivo del tensor.
    • Orden y precisión de las operaciones de punto flotante
  8. ¿Cuándo es más defendible un kernel Triton personalizado?
    • La elaboración de perfiles identifica un cuello de botella y una operación especializada puede justificar el mantenimiento.
    • Antes de medir cualquier línea de base
    • Siempre que un tensor contenga más de un valor
    • Cuando las pruebas de corrección no están disponibles