{"action":"created","issue":{"url":"https://api.github.com/repos/lattice/quda/issues/323","labels_url":"https://api.github.com/repos/lattice/quda/issues/323/labels{/name}","comments_url":"https://api.github.com/repos/lattice/quda/issues/323/comments","events_url":"https://api.github.com/repos/lattice/quda/issues/323/events","html_url":"https://github.com/lattice/quda/issues/323","id":96791092,"number":323,"title":"Build quda using cmake","user":{"login":"mathiaswagner","id":4508207,"avatar_url":"https://avatars.githubusercontent.com/u/4508207?v=3","gravatar_id":"","url":"https://api.github.com/users/mathiaswagner","html_url":"https://github.com/mathiaswagner","followers_url":"https://api.github.com/users/mathiaswagner/followers","following_url":"https://api.github.com/users/mathiaswagner/following{/other_user}","gists_url":"https://api.github.com/users/mathiaswagner/gists{/gist_id}","starred_url":"https://api.github.com/users/mathiaswagner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathiaswagner/subscriptions","organizations_url":"https://api.github.com/users/mathiaswagner/orgs","repos_url":"https://api.github.com/users/mathiaswagner/repos","events_url":"https://api.github.com/users/mathiaswagner/events{/privacy}","received_events_url":"https://api.github.com/users/mathiaswagner/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/lattice/quda/labels/clean-up","name":"clean-up","color":"9d45e6"},{"url":"https://api.github.com/repos/lattice/quda/labels/feature","name":"feature","color":"0da60d"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-07-23T11:23:35Z","updated_at":"2015-07-29T21:25:04Z","closed_at":null,"body":"I am working on a cmake build of quda.\r\n\r\nThis should come with:\r\n* support for build directories (e.g. different directories for different SM)\r\n* support for different build types (release, debug, ...)\r\n* automatic dependency generation (faster recompilation)\r\n\r\nThis issue is just to document and track progress, missing features from the current autoconf/make build and discuss issues.\r\n\r\nEverything is still in a private branch *mw/cmake*.\r\n\r\nBuilding works but does not support any options from the configure script yet.\r\n\r\n\r\n**Current configure options** (serves as a todo list)\r\n\r\n- <del>enable-cpu-arch=arch  Set CPU arch: x86 or x86_64 (default: x86_64)</del> *Only 64 bit in the future*\r\n- [x] enable-gpu-arch=arch  Set GPU arch: sm_13, sm_20, sm_21, sm_30, sm_35,\r\n                          sm_50, sm_52 (default: sm_35)\r\n- [x] enable-os=os          Set operating system: linux, osx (default: linux)\r\n- [ ] enable-host-debug     Enable debugging of host code\r\n- [ ] enable-device-debug   Enable debugging for device code\r\n- [ ] enable-verbose-build  Display kernel register usage\r\n- [x] enable-qdp-interface  Build the QDP interface (default: enabled)\r\n- [x] enable-milc-interface Build the MILC interface (default: enabled)\r\n- [x] enable-cps-interface  Build the CPS interface (default: disabled)\r\n- [x] enable-qdpjit-interface\r\n                          Build the QDPJIT interface (default: disabled)\r\n- [x] enable-bqcd-interface Build the BQCD interface (default: disabled)\r\n- [x] enable-tifr-interface Build the TIFR interface (default: disabled)\r\n- [x] enable-wilson-dirac   Build Wilson Dirac operator (default: enabled)\r\n- [x] enable-clover-dirac   Build Wilson-clover Dirac operator (default:\r\n                          enabled)\r\n- [x] enable-domain-wall-dirac\r\n                          Build domain wall Dirac operator (default: enabled)\r\n- [x] enable-staggered-dirac\r\n                       Build staggered Dirac operator (default: enabled)\r\n- [x] enable-twisted-mass-dirac\r\n                          Build twisted mass Dirac operator (default: enabled)\r\n- [x] enable-ndeg-twisted-mass-dirac\r\n                          Build non-degenerate twisted mass Dirac operator\r\n                          (default: disabled)\r\n- [x] enable-twisted-clover-dirac\r\n                          Build twisted mass clover Dirac operator (default:\r\n                          disabled)\r\n- [x] enable-staggered-fatlink\r\n                          Build asqtad link-fattening routines (default:\r\n                          disabled)\r\n- [x] enable-hisq-fatlink   Build HISQ link-fattening routines (default:\r\n                          disabled)\r\n- [x] enable-gauge-force    Build 1-loop Symanzik gauge force (default:\r\n                          disabled)\r\n- [x] enable-staggered-force\r\n                          Build asqtad fermion force (default: disabled)\r\n- [x] enable-hisq-force     Build HISQ fermion force (default: disabled)\r\n- [x] enable-gauge-tools    Build auxilary gauge tools: plaquette, gauge\r\n                          evolver, APE, extended gauge routines (default:\r\n                          disabled)\r\n- [x] enable-sstep          Build s-step linear solvers (default: disabled)\r\n- [x] enable-contract       Build bilinear contraction code (default: disabled)\r\n- [x] enable-multi-gpu      Enable Multi-GPU support (default: disabled)\r\n- [x] enable-gpu-direct     Enable CUDA/NIC interop pinned memory (default:\r\n                          enabled)\r\n- [x] enable-gpu-comms      Enable direct CUDA-NIC communication (experimental,\r\n                          default: disabled)\r\n- [ ] enable-mpi-nvtx       Enable NVTX markup for profiling MPI API calls in\r\n                          the visual profiler (default: disabled)\r\n- [ ] enable-milc-nvtx      Enable NVTX markup for profiling MILC interface\r\n                          calls in the visual profiler (default: disabled)\r\n- [x] enable-device-pack    Enable the packing / unpacking of fields on the\r\n                          device (default: disabled)\r\n- [x] enable-pthreads       Enable pthreads in the multi-GPU dslash build\r\n                          (default: disabled)\r\n- [ ] enable-qdp-jit        Enable QDP-JIT support, requires --with-qdp\r\n                          (default: disabled)\r\n- [x] enable-blas-tex       Enable texture reads for blas (default: enabled)\r\n- [x] enable-fermi-double-tex\r\n                          Enable double-precision texture reads on Fermi\r\n                          (default: enabled)\r\n- [x] enable-numa-affinity  Enable NUMA affinity support (default: enabled,\r\n                          always disabled on osx target)\r\n\r\nOptional Packages:\r\n- [x] <del>with-cuda=CUDADIR     Specify CUDA installation directory (default:\r\n                          /usr/local/cuda)</del> *supported by cmake*\r\n- [x] with-python=path      Set python executable used for 'make gen'\r\n- [x] with-mpi=MPIDIR       Specify MPI installation directory\r\n- [x] with-qmp=QMPDIR       Specify QMP installation directory\r\n- [x] with-qio=QIODIR       Specify QIO installation directory\r\n- [x] with-qdp=QDPDIR       Specify QDP++ installation directory\r\n- [ ] with-magma=MAGMADIR   Specify MAGMA installation directory\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/lattice/quda/issues/comments/126099563","html_url":"https://github.com/lattice/quda/issues/323#issuecomment-126099563","issue_url":"https://api.github.com/repos/lattice/quda/issues/323","id":126099563,"user":{"login":"mathiaswagner","id":4508207,"avatar_url":"https://avatars.githubusercontent.com/u/4508207?v=3","gravatar_id":"","url":"https://api.github.com/users/mathiaswagner","html_url":"https://github.com/mathiaswagner","followers_url":"https://api.github.com/users/mathiaswagner/followers","following_url":"https://api.github.com/users/mathiaswagner/following{/other_user}","gists_url":"https://api.github.com/users/mathiaswagner/gists{/gist_id}","starred_url":"https://api.github.com/users/mathiaswagner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathiaswagner/subscriptions","organizations_url":"https://api.github.com/users/mathiaswagner/orgs","repos_url":"https://api.github.com/users/mathiaswagner/repos","events_url":"https://api.github.com/users/mathiaswagner/events{/privacy}","received_events_url":"https://api.github.com/users/mathiaswagner/received_events","type":"User","site_admin":false},"created_at":"2015-07-29T21:25:04Z","updated_at":"2015-07-29T21:25:04Z","body":"Current plan is to switch to CMake and at least for the time being keep the old build system until we gathered some experience with CMake and made sure it has all the features of the current build system."}}