OpenCLではホストプログラミングと、カーネルプログラミングの2つのソースファイルが存在しますが、PyOpenCLでは一つのソースファイルでコーディングを完結させるほうが簡潔で読みやすいかと思います。
カーネルのソースコードは、Pythonでビルドすることはできませんし、それ自体ではただの文字列にすぎません。
カーネルのソースコードをビルドする場合は一般に以下のように引数にそのままOpenCL-C言語(C99準拠)で文字列を記述します。
program = pyopencl.Program(ctx, """ OpenCL-C言語でカーネル関数を記述 """).build()
Copyright 2018-2019, by Masaki Komatsu